Jump to content

RubenPikachu

Member
  • Posts

    133
  • Joined

  • Last visited

Everything posted by RubenPikachu

  1. All pokemon were obtained ingame, the Pikachu was obtained with PokeRadar chain, Magikarp with Consecutive Fishing, all pokemon are unmodified... It will be difficult to obtain pkx files with current patch encryption... good luck finding some on the internet
  2. I got a pkx of a shiny Alakazam that has 11 as the result, so the (id^sid^s1^s2) % 2 == 0 cannot be part of the formula shinyalakazam..zip
  3. Are you sure it has 4 at offset 0x15? do you have the pkx file to check it out since all my HA pokemon have the value of 4 and all other have between 1 and 2 About shiny threshold, it would be needed a shiny pokemon with 15 as the result of XORing the data, and one with 16 to demostrate it...
  4. I got a shiny pkx with the formula equal to 12 it is possible that the formula is (id^sid^s1^s2)< 16 but I'm not sure of it... Also found out how ability number (offset 0x15) works, seems it works through bits, bit 0 indicates the pkx has the ability 0 of its species, bit 1 is ability 1 and bit 2 is for Hidden Ability (values are 1 (0), 2 (1) and 4 (HA))
  5. Found out how a pkx is shiny, it uses offset 0x18-0x1B (I'm not sure how the game generates it but acts as a unsigned integer for shiny check), ID and SID Like the PID in Gen 5, divide this seed into 16 bit parts, let s1 be the upper part and s2 the lower part If (id^sid^s1^s2)<16 then the pokemon is shiny
  6. I would like to contribute my pkx files, I have only extracted these pkx files... however some of them have hidden ability and two of them are shiny so it could help with research :smile: PKX Collection..zip
  7. Obtained Mega stones IDs, they are between Mulchs and the new berries
  8. You can put 255 in all stats EV's, however I'm not sure if the game will limit them to 510 EV's... Also Hack editor is only for the pkm editor
  9. Thanks a lot, I didn't have the offsets for difficulty, I have checked more PWT files to check out this and these are the offsets for AI I have updated Pikaedit's DTE and the standalone version of DTE with AI difficulty editor on the trainer tab
  10. Seems interesting... I'm wondering about mystery gifts, are you planning a wonder card editor and/or injector?
  11. Nice... seems that you have everything needed for pkm editing and wonder cards, and some save file editing (trainer name, ID, SID, adventure started, badges, boxes,...) and some interesting stuff, keep up the good work!
  12. How do you get that name and what do you mean by important trainers (trainers of the tournament or special trainers)? If it is displayed on the trainers tab, that's one of the trainer's name of the tournament... On special trainers on the Bracket tab that name doesn't exist at all...
  13. Then there is a bug on DTE... it is missing a special trainer before the gym leaders... I will be checking the source code to find the bug and fix it...
  14. Ok, I'm back... First of all, have you finished inserting all 4 trainers? DTE has some problems saving if you have only 3 trainers, if that's not the case then change the slots to match this... use slots 1-4 for trainers to battle and slots 5-7 select filler trainers Also I downloaded your pwt file and it load some weird stuff like the pkm data is incomplete and there are only two trainers :confused: Well... DTE doesn't fix the checksum when saving a pwt file... the checksum is calculated when injecting a pwt file on the save file...
  15. It would be nice to share and try other's custom download tournaments, I will make some and upload them :biggrin: Also I fixed the banned move bug, so it will show Sky Drop or any other move selected...
  16. I have found out that Studio Pokemon (check here for more info http://projectpokemon.org/forums/showthread.php?26325-Studio-Pokemon-Injector.) can be inserted on a pwt file and battle against them. I will add them later to DTE Edit: Added!
  17. The sprites were given by Kaphotics in this post http://projectpokemon.org/forums/showthread.php?25121-PWT-Download-Tournaments&p=156607&viewfull=1#post156607 I have updated DTE to contain the list :biggrin:
  18. I found out the 2 offsets I needed, seems that those are the default form is that is shown in the Pokedex With this I tried to hex edit the pokedex and it worked... Thanks! :biggrin:
  19. Well I'm trying to edit a save file Pokedex through Hex editing, I have tested through various save files and got the following offsets, the first 6 have a length of 0x52 bytes with 2 extra bytes that are zeros. 0x21408 Caught 0x2145C Seen male 0x214B0 Seen female 0x21504 Seen Shiny male 0x21558 Seen Shiny Female 0x215AC ???????? 0x21601 ??????? 0x216FC Seen Forms 0x21728 Languages Every Pokemon is given by a bit, however I'm having a problem while editing it when I open the Pokedex and scroll it to a Pokemon I have added seems that the game crashes or the pokemon sprite is grayed out, I think that the offset 0x215AC ???????? is the cause, but I don't know what it is, I know that it is similar to caught and seen offsets however it has different values Any help?
  20. Seems that I forgot the IV calculation function to be updated if you change IV :tongue: Solved it and edited my post with the updated version :biggrin:
  21. Ok... I liked DT Manager, however since the tool manages save file tournaments and edits .pwt files, I have decided to name it Download Tournament Editor (DTE) Here it is, it requires .NET Framework 4.0 http://www.microsoft.com/en-us/download/details.aspx?id=17851 Download Tourname.zip
  22. I have the separate version ready... However since I don't have a name for the tool other than PWT Editor, I will not upload it until I have one... Any suggestions? :confused:
  23. Thanks Kaphotics and Prof. 9 for their PWT compiled research, I have mixed it with some of my research and built a working PWT editor with trainer and pokemon editing and I have add it to my program, however since I cannot post it here, I'm going to make a separate version and post it here later... 0x340 = Custom announcer message (74 characters) Custom messages are used if pre-set messages values are zero I edited the unknown bytes however I don't see any change... 0x30 = Alternate forms (bit 0-4)
  24. Ok, this is gonna be difficult for me because Java doesn't support unsigned numbers, so I hope this helps First this piece of your code is the rand() function that will give you the next seed, however seems you are using the same seed for all bytes Instead use a method and a static variable static long seed; public static long rand(){ seed = (0x41C64E6D * seed + 0x6073) & 0xFFFFFFFF; //This is to make sure it is an unsigned integer return seed>>>16; } Before you assign decrypt the bytes, you must now which order are the blocks shuffled, and the XOR is applied on an Unsigned Short, not a byte First determine the block order using the pid int a = Math.round(((pid & 0x3E000) >> 0xD) % 24); String order = ""; switch (a){ //Determine block order case 0: order = "ABCD"; break; case 1: order = "ABDC"; break; case 2: order = "ACBD"; break; case 3: order = "ACDB"; break; case 4: order = "ADBC"; break; case 5: order = "ADCB"; break; case 6: order = "BACD"; break; case 7: order = "BADC"; break; case 8: order = "BCAD"; break; case 9: order = "BCDA"; break; case 10: order = "BDAC"; break; case 11: order = "BDCA"; break; case 12: order = "CABD"; break; case 13: order = "CADB"; break; case 14: order = "CBAD"; break; case 15: order = "CBDA"; break; case 16: order = "CDAB"; break; case 17: order = "CDBA"; break; case 18: order = "DABC"; break; case 19: order = "DACB"; break; case 20: order = "DBAC"; break; case 21: order = "DBCA"; break; case 22: order = "DCAB"; break; case 23: order = "DCBA"; break; } Then initialize the seed with the checksum, pkm+(pkm[b+1]<<8) will give you the short for the XOR int checksum = 0x27dd; //Beginning seed is the checksum seed = checksum; byte[] x = new byte[136]; int b = 8; long temp=0; for (b=8;b<136;){ switch (order.substring(0, 1)){ //Depending on the order unshuffle bytes case "A": for (int j=8; j<0x28; j+=2){ temp = (long) (((pkm[b]+(pkm[b+1]<<8)))^(rand())); x[j+1] = (byte) ((byte)((temp & 0xFF00)>>>8)); x[j] = (byte) ((byte) temp & 0xFF); b+=2; } order = order.replace("A",""); break; case "B": for (int j=0x28; j<0x48; j+=2){ temp = (long) (((pkm[b]+(pkm[b+1]<<8)))^(rand())); x[j+1] = (byte) ((byte)((temp & 0xFF00)>>>8)); x[j] = (byte) ((byte) temp & 0xFF); b+=2; } order = order.replace("B",""); break; case "C": for (int j=0x48; j<0x68; j+=2){ temp = (long) (((pkm[b]+(pkm[b+1]<<8)))^(rand())); x[j+1] = (byte) ((byte)((temp & 0xFF00)>>>8)); x[j] = (byte) ((byte) temp & 0xFF); b+=2; } order = order.replace("C",""); break; case "D": for (int j=0x68; j<0x88; j+=2){ temp = (long) (((pkm[b]+(pkm[b+1]<<8)))^(rand())); x[j+1] = (byte) ((byte)((temp & 0xFF00)>>>8)); x[j] = (byte) ((byte) temp & 0xFF); b+=2; } order = order.replace("D",""); break; } } Then just write x[] from 0 to 136, the bytes will be in the correct order
  25. Thanks, also you did a lot to make this program so I'm looking foward to new versions Well I could help you with this, I have already added changing the box background in Pokemon Data Checker so I could give you the offsets... Edit: It could be useful to add compatibility to BW save files to use the Hall of Fame editor only, I got the First game clear offsets, I'm researching the Hall of Fame offsets
×
×
  • Create New...