Jump to content

codemonkey85

Innovator
  • Posts

    1178
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by codemonkey85

  1. I'm seeing a bit of a contradiction here.
  2. You can use the NDS Adapter Plus. It works for me at least. http://www.amazon.com/gp/aw/d/B007QVG3LG
  3. 02-12-2014: The last several posts of mine have been merged for cleanup purposes.
  4. This seems like a solution in desperate need of a problem. It's easy enough to figure this stuff out without having to create a complicated program. Honestly it would be more work to type in the information that would be necessary then it would be to just look at your game and figure it out.
  5. That's still not very clear explanation. Are you looking for a program that will do the same breeding calculations the game itself would do? Or simply a program that will tell you what to breed? Because frankly, the latter seems rather useless if you're accessing the save file anyway.
  6. What specifically are you looking for? RNG manipulation?
  7. Not a great idea to continue a line of conversation that borders on piracy in public.
  8. Another satisfied customer.
  9. An entire save with one code? No freaking way. Not possible.
  10. 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.
  11. Pokegen does not support Gen III at all. If you want to convert those files from Gen III to Gen IV / V you may want to pay attention to this thread: http://projectpokemon.org/forums/showthread.php?33354-Gen-I-II-to-Gen-III-IV-V-Conversion. Alternatively, Gen III conversions are pretty close to possible with my PKMDS library, and it's something I've thought about looking into, but if you're a programmer you can just clone my repo and do it yourself. I'm not sure about getting Pal Park to work in an emulator - sorry.
  12. This isn't meant aggressively, but software development isn't just some magic wand that you can wield to do your will. If you don't put in the time, you won't learn, and you won't really develop much of anything. There's no way to know for certain what "reader" is just from this snippet. However, my guess is it's the BinaryReader class I mentioned earlier: http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readstring(v=vs.110).aspx Did you see the link I'd posted before? Not to sound like a broken record, but you have to put in some time and thought to be successful at development.
  13. Just out of curiosity, if you're "restarting" programming now, why not simply learn a language better suited for the job (i.e. C++)? Anyway, there are many different ways of reading binary files in C#. I think probably the easiest way to just get at the data itself is to use a BinaryReader class: http://msdn.microsoft.com/en-us/library/system.io.binaryreader(v=vs.110).aspx. However, my personal preference is binary serialization. You can check out this page for some info: http://stackoverflow.com/questions/3537583/properly-copy-c-sharp-structs-with-byte-arrays-in-them
  14. PokeTransporter is region-free, so you should be able to use your existing Gen V carts. Sent from my XT1060 using Tapatalk
  15. Quick update again - move deletion was a little overactive, but that's been fixed now. Carry on! EDIT: Just pushed out one last bugfix. As mentioned earlier this feature has also been added to my PKMDS: Desktop Edition application, so I think I'm pretty much set to leave the app as-is. If there are any questions, feel free to PM me!
  16. QUICK UPDATE: I updated the application today to fix an issue with calculating the party checksum. It should be all good now! QUICK UPDATE 2: I also fixed move PP upon move deletion. Yay!
  17. Hi all, In order to help people use PokeTransporter, I have created a Windows application to remove all HM moves from all Pokemon in a save file. This way, all Pokemon will be transferrable right away. To use it just drag and drop your save file onto the .exe, and your modified save will be created as "OUT.sav". In the case a Pokemon has 4 HM moves, the only move they will know is Return. You can grab the .exe here: http://goo.gl/xlgxLp I'm still testing this for bugs, so if you spot any, let me know. EDIT: This feature has also been added to my PKMDS: Desktop Edition application, so I'll go ahead and close this thread soon.
  18. Bam. void calcchecksum(gbapokemon * pkm) { uint32 sum = 0; uint16 * word = new uint16(); word = reinterpret_cast<uint16*>(&(pkm->encrypted)); for(int i = 0; i < 24; i++) { sum += word[i]; } pkm->checksum = sum; } This is in C++. I used some structs and typedefs but you should get the idea. If you have any questions ask away. You can find me on the IRC as well.
  19. Hey Metropolis - could you provide me with a test Pokemon from Gen III? Or better yet, maybe a quick app that just dumps a bunch from a Gen III save file? I'd like to try doing the checksum myself, and I need some test cases to test it out. If I find any success I'd be happy to share my code with you.
  20. Well according to Bulbapedia, the Pokemon data checksum "is computed by simply adding all the unencrypted values one word at a time". Are you having trouble doing that?
  21. It's safe to say an invalid Gen V species will not be allowed into Transporter.
  22. It is true - the whole reason we use decrypted PKM files is because COM (creator of Pokesav) did it. He didn't do many things correctly, but we learned some of his bad habits all the same. Really? Cleaner than just defining the binary layout in a multi-tier structure then creating a pointer at the memory location of the save file? I find my way so easy to work with in code! struct pokemon_obj : pkmunencryptblock,pkmblocka,pkmblockb,pkmblockc,pkmblockd {}; //... struct box_obj { // size: 0x1000 public: std::array<pokemon_obj,30> pokemon; // uint16 : 16; uint16 checksum; byte buf[0x0c]; box_obj() { memset(this,0,sizeof(box_obj)); } }; //... struct bw2savblock_obj { // //... std::array<box_obj,24> boxes; // size: 0x18000 //... }; Then I get to do nifty stuff like: std::cout << "The Attack IV of the Pokemon stored in Box 1, slot 1 is " << sav->cur.boxes[0].pokemon[0].ivs->attack << "\n";
  23. I know enough about Pokemon GBA save files to tell you a hex editor is going to be pretty useless here. Pokemon GBA save games are divided into a number of blocks, which are rearranged to be "out of order" so that the data you're looking for won't necessarily be where you expect it. Plus, even with an unscrambled save file you'd still have to fix all checksums before the game recognizes any changes.
  24. So pkm is the byte array containing the PKM data and 0x38 is the offset for the IVs, right? This is the syntax for BitConverter.ToUInt32: 'Declaration <CLSCompliantAttribute(False)> _ Public Shared Function ToUInt16 ( _ [b]value[/b] As Byte(), _ [b]startIndex[/b] As Integer _ ) As UShort This is what you are doing: UInt32 Stats = BitConverter.ToUInt32([b]ARRAY[/b], ([b]startIndex[/b] << 0)); See the problem yet? You're shifting the index, not the value at that index. You need to fix your parentheses, I think: UInt32 Stats = BitConverter.ToUInt32(pkm, 0x38) << 0); You do realize [0-31] is the range of values, right? That doesn't go in your code.
  25. Agreed. Any more posts about "what's the point" will be deleted - this is now a contribution thread.
×
×
  • Create New...