Jump to content

suloku

Innovator
  • Posts

    741
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by suloku

  1. Awesome! I'd like to see this on pkhex. Really nice work. By the way, I'm actually surprised that there's a value for the starter that got left... but I guess it is used to show the correct pokeball.
  2. The program has been updated with 3DS Link support (Dream Radar). This can be used to obtain all Dream Radar exclusive pokémon without actually using Dream Radar, which is good news for emulator users. Also, this covers another feature that was Pockestock only until now and surpases it, as the flags for each legendary pokémon can be wiped out so they can be trasnfered multiple times (even on real hardware). https://github.com/suloku/BW_tool/releases You may read the research thread here if interested:
  3. Yes, I thought that might have been the culprit, I should have explored more why my save got deleted after clearing the blocks. I did plan a dream radar editor since the begining, but never got to research it. I already have functions for block managing, checksum fixing and decrypting so It's not like I have to make all from scratch. In fact, I'd like to replicate all pokestock functions that can't be done with pkhex (I think entralink records and other stats may be the only thing missing since other functions can be done with pokegen or other english tools, but I'd also like to see those in an open source fashion), but since there's no demand or personal need motivation to do it just lacks. As ultimate goal, integrating all into pkhex would be great, but my coding style and knowledge isn't adecuate for it, but at least an open source program can serve as some sort of documentation for someone else to integrate it into pkhex. EDIT: I have the editor nearly finished and stumbled upon a problem, but after comparing two examples with pockestock I've noticed how the actual encryption key is generated: Enc key at 0x7F014 is XORed with the legendaries flags present at 0x25E04, and then that's the actual encryption key that will be used and stored at 0x7F090. The value at 0x25E00/0x7f004 might be just a seed to generate the next encryption key...it doesn't serve any apparent purpose. In any case, with that last piece of information I can complete the editor, hopefully bug-free. EDIT 2: You may find the updated program with the 3DS link editor here: https://github.com/suloku/BW_tool/releases Hopefully it's bug free, it seemed to work fine for what I tested, even just reseting the flags worked. @AyanamiRei0@BlackShark EDIT 3: I've just re-read BlackShark's post and turns out I failed to understand that he already explained how the flags where XORed with the encryption key... (blame it to language or me being tired, luckily I didn't spend more than 15 minutes to figure out, it would be a shame if I spend hours trying to find something already found and posted...)
  4. As I said, if it works I'll make versions for the other games (not sure how to test myself)
  5. Nice find! I've just tried it myself, at first 3DS Link option claimed the data was corrupted (I used Pockestock to insert the data instead of the actual app), so I basically wiped out 0x25e00 to be all zeroes and put the dream radar data at 0x7F000 with an encryption key of 0x00000000. Now I'm thinking that clearing both 0x7F000 and 0x25e00 block should reset the flags, but I think I already tried and my save got erased due to corruption...probably I messed up somewhere. By the way, the value at 0x25e00 (and enc key) gets updated also when transfering non lengedaries/items... I wonder how that works. I'll code my own version of PokeTrainerS tomorrow, with an option to "reset" the encryption key to receive the legendaries again. Or maybe I should just make it always wipe the data and write it unencrypted for simplicity? ps: in the end you were the one who did all relevant research and findings
  6. Basically, it seems that clearing the flags needs an extra step since they seem to be encrypted in some unique per savegame way. I've just thought a tedious way of locating where the secret value migth be, albeit time consuming: 1) Create two blank savefiles (A and B) (blank so less data is in them, the 3DS link feature is accessible anyways). 2) Put the value at 0x25E00 from B in A, then check if any of the lengendaries can't be transfered anymore (we want at least one to be flagged as already transfered) 3) Start inserting blocks from savegame B into savegame A. After each insertion, check if the game allows to transfer the legendary again. 4) Repeat 3 until we can transfer the lengedary. Those steps would allow us to locate the block where the value used with 0x25E00 is stored, from there locating the actual value should be easier...at least in theory. Another option would be to reverse engineer how the value at 0x25E00 is generated on a new game, but that's something I can't do. This reminds me of the mirage island in ORAS, I hope this uses a simple operation with a value somewhere in the save, and not a complicated algorythm like that one (which someone actually went and kindly reversed). EDIT: I've been using desmune and I've noticed that each time you receive 3DS link data, the value at 0x25E00 is different, so as I feared this seems to have some RNG involved...
  7. As you can see, the tool allows to do many things with custom scripts, but being able to do it was the main objective and little has been done. Well, I made a wondercard that enables the eon ticket event in emerald and another one that resets the legendary flags so you can rebattle/recapture them, but never uploaded them becasue I did them for some tests and are somewhere in my computer. I should really retake this project and close those loose ends.
  8. I received a spanish Celebi from colosseum long time ago using the AR codes, maybe a german/french one too (on PAL, you just need to change the game language setting before receiving). I don't have a clue about how to receive pikachu, I've never seen any video/post with details and I may be dumb for never finding it in the disk (not that I tried that much, but I did try all the options in the bonus disk menu). Fun fact about the spanish colosseum celebi: OT name is "Ágate", and because they seem to have changed character encoding in gen 4 onwards, the first character "Á" appears as garbage in all following generations. Also, it went up to gen 6, haven't tried to put it on gen 7, but I assume it would pass.
  9. I ban KittyCats for making long posts.
  10. Depends on your 3DS configuration. If you have custom firmware and are using LUMA cfw (if you are using something else, you should change to Luma), it supports per game language/region faking. If you don't have custom firmware and are on official firmware <=11.2, you should follow this guide: https://3ds.guide/ If you are on 11.3, you can still run homebrew, in this case you'll want to use HANS to run the game in another language setting. Here seems to be a good guide to run homebrew on 11.3: https://www.youtube.com/watch?v=XNXfDiFnI7k I do recommend installing a custom firmware if you have the chance, but you can still use HANS in any firmware 9.x to 11.x via SoundHax (the youtube video guide). There's a step in between, which is stayin in 9.2 or 11.2 and use homebrew to run a custom firmware from your SD card, but I find this unnecesessary and more tedious than the safe and quicker installation of A9LH and custom firmware. The only benefit is that you can't brick your 3DS, but the current A9LH installation process is foolproof and has many security checks to ensure no one screws up, the only real danger is that you close the lid/suspend your 3DS while on firmware 2.1 (a step needed for installation).
  11. That would be the most troublesome to get, not sure how the RE efforts on that have gone. BlackShark's Mirage Island appearance program was what I used as basis, which I think in turn is based on kaphotics checksum verification tool. Thinking back, if it weren't for his program I probably wouldn't have dared to play with gen 3 savegame editing. Also, I think the client from glitchcity I posted previously has been updated to handle checksums and even party/pc pokémon with simple functions. I have another alternative, for now we have: 1) A client for each distro 2) Client-host communication As an (easiest?) alternative, I suggest that the final client binary has a dummy pk3 file embeded. The host generates the pk3 once selected using the needed algorythm, then it changes the dummy pk3 file to the actual pk3 on the client and sends it. The client would only need to be a really simple app to check if there's party/pc space and add the pk3.
  12. If they ever release gen 2 I guess they'll just fix the formula, you aren't supposed to trade back anyways, so your aren't supposed to know they screwed up.
  13. I seem to not be exaplining myself well: Collector Togami's list refers to gen1->7 shinies that can actually be catched in game. The list covers those that will have shiny DV as per gen 7 current pokébank formula. What I'm asking is if the list is also applicable to gen1->2 shiny factor (unrelated to gen 7). Example: caterpie can't be shiny for gen1->7, but can it be shiny for gen1->2?
  14. I was referring to the fact that pokemon bank screw up shiny formula and it's different from standard gen 2, I assumed the list is for the current gen1->7 shiny factor.
  15. I'd change that to "I don't have the skills", but it seems someone has already covered the difficult part!: http://forums.glitchcity.info/index.php?topic=7861.0 Basically, it's a custom rom that gets sent over to GBA and does stuff to the savefile. The example changes the player name's first letter to "z", but adding a pokémon to the party/first slot would be easy. The only thing really missing would be pokemon generation algorythm, the downside is that this uses gamecube/wii connection, but maybe doing it over two GBA wouldn't be that difficult for someone familiar with GBA development. Edit: I think it does alter the savefile in RAM, so changes only apply if the player runs the game and saves afterwards.
  16. I wonder, does this apply to gen 2 shininess? Also, why not ditto? Shouldn't one be able to abuse the ditto glitch for that? It's a glitch that was classically made with the red gyarados, but if you already have a 10/10/10/10 pokémon (say, bulbasaur), would that count as illegal? The glitch is less elaborated than the mew glitch in a way that it could happen without the player noticing, but I gess it's a glitch after all.
  17. Yes, I also tweaked it a little and was able to receive again some pokémon (but not all of them). I'm going to try the full reset with arbitrary 0x25E00/0x7F004 value, see if I can receive them all all over again. Also I'll check again the 8 at once transfer, but I didn't have any normal pokémon and it didn't allow me to transfer all 8 for some reason. EDIT: it did not allow me to transfer all 8 at once yet again, only 6. I only had legendaries. Lugia and Ho-oh were left out. EDIT 2: Do you have a savefile that has never transfered anything from Dream Radar? Maybe the same value at 0x25E00 is used for all games, or tied to TID/SID in some way to make it unique. Mine at 0x25E00 is 0x783398F2 and I checked the first savefile backup (right before selecting the starter) and my latest one (never had used dream radar) and the value is unchanged. TID: 07310, SID: 41549 In any case I'll start a new game and check what gets in 0x25E00 EDIT 3: seems random, I even tried used my savegame with memory transfer (which always results in the same key for the key system), but also generates one at random. Changing TID/SID doesn't seem to have any effect. I've noticed a suspicious value at 0x19428, but it may be unrelated as it lays in the trainer region. EDIT 4: 0x19428 is unrelated, pokestock doesn't handle the receive flags. On a save that had received all 8 legendaries, I went and put the data for the 0x25e00 block and dream radar block from a save before ever interacting with dream radar and I could receive them again.
  18. I've been doing some test, but seems BlackShark make a lot more research! I was about to post about the flag location and found he already did quite the research. It's curious that they allow for the 8 legendaries in the structure, while the game only allows to transfer 6 pokémon at a time (legendaries + catched) for some reason. I made a quick test and I managed to re-receive some of the legendaries, but not all of them. What I did was get my savegame that hadn't made any Dream Radar connection, get the 0x25E00 value and paste it in a save that has received 7/8 legendaries at 0x25E00 and 0x7F004, I also cleared 0x25E04 and 0x25E08. I'm gonna set 0x25E00 to 0x00 and see what happens when transfering something over. EDIT: I just noticed that after receiving landorus on the 0x00 file, the dream radar block still has the 0x80808080 for tornadus, so maybe what's needed is to clear the flags and those "identificators". The value I got at 0x25E00 after a single transfer when it was all zeroed is "86 FF A0 F1" (direct hex view). EDIT 2: I've just realized that for our purposes, we don't really need to know how it exactly works, we can just reset the whole thing to an "unused" state, as if dream radar was never used in that savegame, there's really no need to individually clear each flag.
  19. Here you can a guide about how to use pokestock for dream radar legendaries: https://www.reddit.com/r/pokemonrng/comments/2ezvry/guide_pokestock_entralink_and_dream_radar/ It doesn't mention anything about only being able to retrieve the legendaries once, so maybe pockestock also takes care of the received flag? I guess testing is needed. BlackShark, does all the block get zeroed after receiving the pokemon/items? Also, the unused byte in the pokémon structure maybe is the ability modifier? I'll have to catch some Dream radar and start some transfers...
  20. Maybe this feature is already in pockestock? I wanted to look into this, but no motivation right now. If it's already in pockestock it would certainly help to document. I have before and after saves for all legendaries in black2, if anyone wants them to check the catch/uncatch flags. Also, if there are already re-battle AR codes, enabling it and saving after just loading a game should be the quickest way to locate the flag for save editing purposes.
  21. Neither "une" or "oune" are correct in spanish, but "oune" pronunciation remsembles a lot more the spanish word "una" (which would be the correct article for "niña"), so maybe that's what they wanted with the change ("une" doesn't sound like "una" at all, in fact it would sound just like the masculin article "un", and we are talking about a little girl [niña]): https://translate.google.es/#es/fr/un. una.
  22. You can get one of each legitimately in-game, so nothing prevents you from making playtroughs, get the balls, transfer them via pokemon trade and start over... Of course no one would be doing this, but I don't think they'll ban because having too many of a legal item... but again having even 10 of each would require a tremendous amount of work. Current speedruns take between 5-6 hours, probably can be optimized with pokebank and some team transfer, but the game has been out for months, so someone crazy enough could have 50 of each legitimately... or even more. I tend to go by the "if it's technically possible for someone to do it legaly, they won't ban for it", but I've been told nintendo banned people who used hackmons received from wondertrading so you never know with nintendo. But you may get the balls you need, catch what you want and toss the balls before going online again, that should be pretty safe, they most likely won't be checking if you have too many pokemon caught with apricorn balls.
  23. This is probably the best bet about how they were recognizing game carts in GBA games: http://forums.glitchcity.info/index.php?topic=7114.msg198750#msg198750 If they used something similar, it should be possible to change. I hope it doesn't have any checksum or something. For both the 10ANNIV rom and Colosseum bonus disk (JAP), a program is sent to the client GBA, which is most likely the one that checks the console's inserted cartridge, so using VBA it should be easier to find what to change if dumping the "rom" that gets sent over to the GBA. I wonder what would happen if the rom can be made compatible with non-english games for languages like french, which have different pokémon names.
  24. Yes, the wipe save data basically wipes it, probably by writing all of it as 0xFF (you could also restore a full 0xFF savegame to obtain the same result, a corrupted save might also make the game reset the save on itself). In any case, you might be interested in just restoring a savedata that can distribute the manaphy egg instead of replaying the whole thing, there's one available at gamefaqs, and also at digiex.
×
×
  • Create New...