Jump to content

Tux

Member
  • Posts

    54
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Tux

  1. Updated. It's outdated and based on trials and errors, not on a dissassembly .
  2. Thank you. I updating my guide, by adding this script, which should do the trick. By the way, Pokémon aren't generated the way you think it is. Check the script's source code.
  3. This won't be a long post. Basically, I've just made a guide on how to make legal Colosseum/XD Pokémon, which can be found -Pok%C3%A9mon'>here. It uses xdseed and my own save file editor. Feel free to ask if you have any question or suggestion.
  4. -Pok%E9mon-Legality-Guide'>A guide on how to make legal Colosseum/XD Pokémon PkmGCSaveEditor 1.2.2: Few changes this week. The PID of a Pokémon can now be displayed either in hexadecimal or in decimal (default: hexadecimal). When editing the moves of a Pokémon, Hidden Power's type and base power are now displayed.
  5. PkmGCSaveEditor 1.2.1: Mostly ergonomic changes: Move names are now displayed next to CTs. Added autocompletion for Pokémon, item, and move combo boxes. Added the following buttons to the Strategy Memo editor: 'Fill memo' (for both Colosseum and ) and 'Fill memo (all shiny)' (for Colosseum only) buttons. Stats boosted (resp. hindered) by the different natures are now displayed in red (resp. blue). @StarsMmd : http://www.mediafire.com/download/21zhc63m772nnrz/GCSaveSlotsSideBySide.zip
  6. You can run homebrews with the latest firmware version (10.1.27). SVDT is a homebrew that enables you to backup/restore virtually any save file. If you are below 9.2 you can even run downloaded backup and much more, but that's not your case. I won't detail the instructions (see Smealum's website and YT), but you need nothing more than a 3DS and an internet connection.
  7. NOTE: please redownload the required libraries from here The interface can now be displayed in German (thanks peterpansexuell) Updates can now be automatically checked for at startup (this is the default) New features: Ribbon descriptions can now be modified (7 ribbons are concerned) Pokémon can now be imported/exported from/to Base64 strings On Colosseum, you can now change Rui's name Minor changes and bugfixes
  8. New version : 1.1.2. Links in the front post as always. Fixed a bug in : the map+script data was being wiped out.
  9. You're welcome. :redface: Fixed a bug where new users were given the message that they used a version older than 1.1.1.
  10. New version: 1.1.1 Program + Required libraries There were more bugs than I expected... Money and Pokécoupons are now limited to 9,999,999. Bag items are limited to 99 again in Pokémon Colosseum (use the PC storage system to fix bag entries with more than 99 items). To users of previous versions:<ul><li>If and <b>only</b> if you have modified a <b>Colosseum</b> save file with that previous version, please load this save file again, and click "Bugs affecting Pokémon..."(in "Options", "Bug fixes"). <b>Do it only once and only once</b> (for each concerned save file).</li><li>If you have imported or exported a Pokémon in the GBA format, please check its status alteration, its EVs, and its game of origin.</li></ul> And for StarsMmd: http://www.mediafire.com/download/21zhc63m772nnrz/GCSaveSlotsSideBySide.zip
  11. ... I just figured out it was to do a bug in my program. In Pokémon Colosseum, the Pokémon's IVs are not saved properly ... fortunately there is a way to recover from this. I will fix that error before this WE. Until then, do NOT use my save editor for Pokémon Colosseum. is unaffected by this bug.
  12. Please send me your save file
  13. You're welcome :biggrin:. http://www.mediafire.com/download/21zhc63m772nnrz/GCSaveSlotsSideBySide.zip (Fix for Pokémon ) By the way even if I don't know where the player's location is stored, I do know that, in Pokémon , the player's (X,Y,Z) coordinates as well as his "Y angle" are stored in the player's data ([Pokémon ] 0x93a: u16 playerYAngleInDegrees, 0x93c: float playerCoordinates[3], the player's name being located at offset 0 of this substructure)
  14. New version: 1.1 Links: Program + Required libraries GBA Pokémon are now fully supported. As a consequence conversion between Colosseum, and GBA Pokémon is now fully supported. It is done (almost) exactly like it is in Colosseum/XD during a GC<->GBA trade (meaning, for example, that the data specific to shadow Pokémon is lost). Please note that A-Save discards all party-related information (e.g status alteration). The devil is in the detail... The maximum number for items has been raised to 999. Some bug fixes (Strategy Memo edition now working properly etc...). PkmGCSaveEditor now has an icon! Thank you! You could already change your Daycare's status. About the in-game location as well as the pokespot status, I think they are stored in various flags. I don't know where or how the latter are stored. The two games store the Shadow Pokémon data very differently : in Colosseum, it is located within the Pokémon data; in , it is not ... And just for you :biggrin: : http://www.mediafire.com/download/21zhc63m772nnrz/GCSaveSlotsSideBySide.zip. Copy your save file as "save.gci" in the executable's directory. Please note that does not clean its save buffer, so you will get trash data.
  15. ^^. I thought about that feature too when I was designing my library, but decided not to implement it straight away ... I meant than I may not even have time to code, because of school. :smile:
  16. Thank you ^^! No, not really. Pokémon Colosseum and do not even share the same Pokémon format; see http://pastebin.com/5ej4AXQw. However, they have obviously a lot of fields in common; there is almost a one to one correspondance between the two formats (Shadow Pokémon Data put aside). I have found the address of the fonction converting from to GBA. I need to have time, though.
  17. PkmGCSaveEditor PkmGCSaveEditor is a cross-platform, open source (GPLv3) Pokémon Colosseum and Pokémon save file editor. It comes with its backend library, LibPkmGC (LPGLv3) (not documented yet). Links: Win32 binaries: Program + Required libraries Other OS: please compile from source. Source: https://github.com/TuxSH/PkmGCTools . You will need CMake ≥ 2.8.12, Qt ≥ 5.2, Boost ≥ 1.55 to compile this project October 18th: Version 1.2.2. -Pok%C3%A9mon'>A guide on how to make legal Colosseum/XD Pokémon October 10th: Version 1.2.1. October 3rd: Version 1.2.0. Please redownload the required libraries. Note: by default, PkmGCSaveEditor now checks for updates at startup. If it's causing you crashes (netio.sys) (Windows 10, you know ...), then turn off your network card, start the program again, and uncheck "Check for updates at startup" in "Options". September 27th: Version 1.1.2 Fixed a bug affecting Pokémon September 19th: Version 1.1.1. Money and Pokécoupons are now limited to 9,999,999. Bag items are limited to 99 again in Pokémon Colosseum (use the PC storage system to fix bag entries with more than 99 items). Users of previous versions, please read: September 13th, 2015: Version 1.1 September 2nd, 2015: BUGFIX: missing dlls on windows. Current features: You can edit all of your Pokémon. You can import/export Colosseum, and GBA Pokémon files and Base64 strings. Conversion between these formats is fully supported and is almost done like the game does in a trade. Please notice that A-Save discards all party-related information (e.g status alteration). The devil is in the detail.... You cannot edit the information specific to Shadow Pokémon, though. You can edit your game configuration. In particular, you can change your save language. You can edit your trainer info (name, IDs, gender (!), money and Pokécoupons), your bag and your Party. You can edit your PC (both Pokémon and items). You can edit your Daycare. You can edit your Strategy Memo. On , you can edit your Purifier. Additional features *partially* supported by the backend library only: Editing your Mailbox and your Battle Mode data. Supported languages: Interface: English, French, German Dumped names (thanks -hacking-tutorial-part-2-Text-editing&p=205271&viewfull=1#post205271)Tiddlywinks'>http://projectpokemon.org/forums/showthread.php?46253-Stars-Pokemon-colosseum-and--hacking-tutorial-part-2-Text-editing&p=205271&viewfull=1#post205271)Tiddlywinks) English, French, German, Spanish, Italian, Japanese Special thanks to: peterpansexuell (German translation), Yago (for testing), Ralf (for his "offset tables"), StarsMMD, Tiddlywinks. Tips: The most recent versions of Dolphin (e.g. 5.0-rc) can directly read and write to GCI files, making testing your changes much easier. You can dump/restore your physical memory card contents using Ctr-Gcs-DacoTaco-Edition.
  18. I am trying to dump the text data of the Pokémon Conquest american rom. I don't have any problem with the Pokémon's names (data/Pokemon.dat), the Building names (data/Building.dat) etc... But I have issues with some others, for instance the character dialogue (data/MSG.DAT). Is there any special character map or something else ? Thanks in advance.
  19. Hi, I wondered if the following Pokémon could be legitimately shiny : AGETO Celebi WISHMKR Jirachi Pokémon Channel's Jirachi Pokémon Box reward Pokémon eggs (Swablu egg, Zigzagoon egg, Skitty egg, Pichu egg) Thank you in advance ! :smile:
  20. Hi, I don't know if this has already been done by someone, but yesterday I did some research in my Platinium save file. EDIT : Now in HGSS. Here is the results (in addition to the wiki) (all offsets are relative to the starting offset of a block) : Pokémon Platinium General block offsets : Adventure started : 0x34 Unsigned 32-bit integer In seconds since 1/1/2000 00:00:00 Pokémon League Champion date : 0x3C Unsigned 32-bit integer In seconds since 1/1/2000 00:00:00 Total Playtime : 0x8A Same as in DP Museum resurrected Pokemon's Pokedex ID : 0xF14 Unsigned 16-bit integer National Pokedex's Pokemon ID (?) Poketch structure : starting at 0x1160 In order : Poketch enabled flag (0 : disabled; else : enabled), number of Poketch Apps enabled (max 25 / 0x19, offset : 0x1161) , currently viewed one (0x1162) , "Poketch Apps enabled" flag list (25 flags starting at 0x1163). Same as in DP. Map ID number : 0x1280 Unsigned 16-bit integer "Sinnoh Pokedex" flag : 0x1642 "National Pokedex" flag : 0x1643 First Daycare Pokémon : 0x1654 236-byte Pokemon structure Second Daycare Pokemon : 0x1740 236-byte Pokemon structure Daycare Egg's PID : 0x128C Unsigned 32-bit integer Map Coordinates : Each coordinates is a unsigned 16-bit (32-bit, with 16 unused bits, IMO) integer. X : 0x287E Y : 0x2882 Z : 0x2886 Underground scores : Each coordinates is a unsigned 32-bit integer. Players met : 0x3CB4 Gifts given : 0x3CB8 Spheres obtained : 0x3CC0 Fossils obtained : 0x3CC4 Traps avoided : 0x3CCC :cool: Traps triggered : 0x3CD0 Flags captured : 0x3CE8 Poffins : starting at 0x52E8 Same Poffin structure as in DP (?) Note about poffin type : 0x1E = No poffin; 0x01 = Spicy/dry (?) Battle scores (battle wins) : starting at 0x68E0 10 consecutive unsigned 16-bit integers Same order as in DP and as in the wiki. Battle points : 0x7234 Unsigned 16-bit integer Repel remaining effect's countdown : 0x8073 Unsigned 8-bit integer GTS Pokemon : 0x8080 236-byte Pokemon structure Offset may not be correct Storage block offsets : Currently viewed box (?) : 0x00 8-bit integer Box 1 is 0x00 Pokemon : starting at 0x04 Each Pokemon is 236-byte long There isn't any padding between boxes. Box names : 18 names, starting at 0x11EE4 Missing informations : Pal Park's Pokémon offsets (but this is very easy to find ... ) Global score, Pokémon scores (?), Number of won contests (?), Number of Ribbons (?) : Cannot be found "raw" in the savefile. (I'm sure of this for the global score) COM himself wasn't able to find them. So, these infos are probably encrypted, somehow, somewhere. Pokémon Heart Gold & Soul Silver General block offsets : Counters box : 0x84 Unsigned 16-bit integer Max. value is 50,000 (0xC350) Lotto number : 0xE5C Unsigned 16-bit integer Blue card points : 0x1058 Unsigned 16-bit integer (max 9999) Pokédex stucture : See this thread Pokémon caugth : 0x12BC Pokémon seen : 0x12FC Lang entries unlocked : 0x13FD (1 byte (bitfield, see link) per Pokémon) Default form : 0x133C (1 bit per Pokémon) (1b = Female, 0b = Male) Genders (forms) unlocked (1bit per Pokémon) : 0x13FC If only one form has been unlocked, then 1b = Female, 0b = Male Else, 1b = Male, 0b = Female Special cases : First Spinda seen's PID : 0x13BC (prediction) Shellos forms : 0x13C0 Gastrodon forms : 0x13C1 Burmy forms : 0x13C2 Wormadam forms : 0x13C3 Unown forms : 0x13C5 Rotom forms : 0x15F0 Deoxys forms 1 : 0x12FB Deoxys forms 2 : 0x133B Shaymin forms : 0x15F4 Giratina forms : 0x15F5 First daycare Pokémon : 0x15FC 136-byte Pokémon structure Second daycare Pokémon : 0x16E8 136-byte Pokémon structure Daycare Egg's PID : 0x17D4 Unsigned 32-bit integer Seals box's data : 0x4E20 80 8-bit integers, each corresponding to a quantity (max 99 / 0x63). Apicorn box's data : 0xE558 7 8-bit integers, each corresponding to a quantity (max 99/0x63). Battle points : 0x5BB8 Unsigned 16-bit integer Castle points : 0x52F4 (?) Unsigned 16-bit integer Battle tower wins : (?) Unsigned 16-bit integers Record : 0x5264 Current : 0x5266 Repel's remaining steps : 0x6909 Unsigned 8-bit integer GTS backup Pokémon : 0x6910 236-byte Pokémon structure Pokéathlon points : 0xE548 Unsigned 32-bit integer Pokéwalker backup Pokémon : 0xE5E0 136-byte Pokémon structure Pokéwalker Steps : 0xE704 Unsigned 32-bit integer Pokéwalker Steps : 0xE708 Unsigned 32-bit integer Storage block offsets : Currently viewed box : 0x12000 8-bit integer Box 1 is 0x00 Remember : all offsets here are relative to their block's start (here, the storage block start is 0x7200) Missing informations : Pal Park's Pokémon offsets (but this is very easy to find ... ) Global score, Pokémon scores (?), Number of won contests (?), Number of Ribbons (?), battle scores etc... : Cannot be found "raw" in the savefile. (I'm sure of this for the global score) These infos are probably encrypted, somehow, somewhere. Software I used / credits : Pokésav vbindiff An emulator PokéGen I'll now do some research in HGSS save files, then in BW ones ... I hope my research will be useful.
  21. That's great, thanks! Is it the same algorithm/"Map" for Pokémon Emerald?
  22. Issue fixed ! (my program's generated checksum and Pokegen's are the same) The equivalent of the changes made in C++ are the following in VB .Net : seeds = New Integer(&H100) {} 'instead of : seeds = New Integer(&H100 - 1) {}, line 13304 in PKMDSLIB.vb of your library If (CType((v1 >> 8) And &H80, [byte]) And &H80) <> 0 Then ' Instead of : If (CType(v1 >> 8, [byte]) And &H80) <> 0 Then, l. 13315, supposing CType() returns the 8 firts bits starting from right Also, thanks a lot for your help and for your library :smile: . PS : How is the checksum calculated in Gen III save files ?
  23. I use my Pokémon Pearl's savefile. I don't understand what I got wrong ... Is The temporary variable(initializated at 0xFFFF), which is used to calculate the checksum , a signed 32-bit integer ? Which pairs of offsets (inclusive) should I use to calculate the checksum ?
  24. Thanks a lot ^^ ! Also, I'm unable to recalculate the save file checksums --' . I have readen your PKMDS vb.net library (by the way, this is a excellent and useful library) source code, and have transcripted the checksums algorithm in C++, but I get wrong checksums ... For example, with 0 for begining block offset, and (0xC0EC + 20) for ending offset (inclusive) and 20 for the footer size, I get 0x5663 (or 0x6356) instead of 0x2306 (EDIT: 0x7A0A or 0x0A7A, offset 0xC0FE to 0xC0FF, sorry) Here is a part my source code : int Savefile::getSeeds(int * seeds) //Output is the 'seeds' parameter array { int v0 = 0; //Signed 32-bit Integer int v1; int v2; int result; do { v1 = v0 << 8; v2 = 0; do { if ((unsigned char)(v1 >> 8 & 0x80) != 0) //unsigned char : unsigned 8-bit integer = Byte v1 = (2 * v1) ^ 0x1021; else v1 *= 2; v2 += 1; } while(v2 < 8); result = (unsigned short) v1; //Unsigned 16-bit integer seeds[v0] = result; v0 ++; } while(v0 <= 0xFF); return result; } unsigned short calculateChecksum(FILE * savefile, unsigned int begin, unsigned int end, unsigned int footerSize) { int seeds[0xFF]; getSeeds(seeds); unsigned char * data = new unsigned char[end-begin-footerSize]; fseek(savefile, begin, SEEK_SET); //Set the cursor at the beginning of the savefile + begin fread(data, 1, (end-begin) - footerSize, savefile); //Read end-begin-footerSize bytes of data into the array 'data' int checksum = 0xFFFF; long long unsigned int i; //64-bit unsigned integer int v4 = end - footerSize; unsigned char v6; i = 0; while (v4 > 0) { v4 -= 1; v6 = (unsigned char)(data[i] ^ (unsigned char)(checksum >> 8)); checksum = (checksum << 8) ^ seeds[v6]; i++; } unsigned short retour = (unsigned short) checksum; delete[] data; // retour ^= 0; return retour; } poke..sav
  25. Sorry ^^', and thanks a lot. By the way, is still the PID linked with shininess, ability, and nature like Gen IV ? Tux.
×
×
  • Create New...