Jump to content

Eskuero

Member
  • Posts

    25
  • Joined

  • Last visited

Posts posted by Eskuero

  1. After a quick look at your battle videos files I think the ek7 data seems to start at address E41 with the expected size of E8, and a gap of 28 empty bytes between every mon. Proof of this is that I know you used a Kommo-o named JACK SPARROW on first slot c:

    I'll be taking a deeper look later.

    EDIT: Nevermind, as always E8 bytes for every Pokemon.

    First six Pokemon, I assume users team.

    Slot 1 - E41

    Slot 2 - F45

    Slot 3 - 1049

    Slot 4 - 114D

    Slot 5 - 1251

    Slot 6 - 1355

    Second group of Pokemon (I assume opponent teams). EK7 from this ones doesn't show up a proper nickname on pkhex, just blank data, idk if it's because your opponent used weird character or if it's any flaw on the program)

    Slot 1 - 145E

    Slot 2 - 1562

    Slot 3 - 1666

    Slot 4 - 176A

    Slot 5 - 186E

    Slot 6 - 1972

    I'll try to confirm this with my own backups asap

  2. Really amazing work, and I think I am quite close to getting this to work for my self, but for one I am on a o3dsxl, but ntr works, and I have a usa version of the game AlphaSaphire, every time I try the debug menu I get inconsistent process ids. first time I got 2e, and guessed it was right seemed to work but only got my own sd card ones. next time I removed all the videos and the last two ids were 28 and 29, tried 28 it worked one time(back before the sd card ones were removed) but when I got the dump file it didn't have the video data. is there a more consistent way to figure out which process it is?

    Any help you could provide with the ids or anything here would be greatly appreciated

    I made a much better explaination of how to just dump the specific battle video without using an HeX editor here:

    https://projectpokemon.org/forums/showthread.php?48749-Dump-online-battle-videos-from-codes

    It also provides info about how to get the proces pid at any running time.

  3. I'll simply put the relevant steps/commands for their usage with Pokemon SM and NTR Debugger here, but you can still read all the research that was done back in sixth gen times by opening the spoiler:

    1 - Get NTR CFW loaded and start the debugger
    2 - Connect to your 3DS debugger using the PC client

    Quote

    connect('YOUR 3DS IP', 8000)

    3 - Write the code of the battle video you want to dump on the Vs. Recorder.
    4 - Start the video playing
    5 - While the video is playing write the following command

    Quote

    data(0x32B9D5E4, 0x2BC0, filename='Video', pid=0x29)

    6 - Video will be saved on the same folder as your NTR Debugger client.
    7 - You can open this file with PkHeX to see the involved player's team.

    *Replace YOUR 3DS IP with the one that corresponds to yours. You can easily get it using third party homebrew like FTPbrony*
    *The number in bold is the process id that corresponds to the game and may vary between reboots, you can check which one is it by using the command listprocess() at the moment of dumping by looking at the one that corresponds to niji_loc*

    Spoiler

    Time ago I asked if this was possible and it indeed was so I spent some time documenting how it worked, but since I did in a painful way that implied dumping heavy pieces of RAM and using an hex editor to choose the correct bytes corresponding to the battle video I just decided to play a bit more around it to document which offsets contains the correct data and how to dump them easier. All of this was done on a New3DS running NTR CFW and doing the dumps over an Alpha Sapphire card, but it should work the same for Old3DS and other versions of six generation games.

    Sorry if the formatting with spoilers is annoying, I find it much more cleaner this way :)

    How to recognize a battle video:

     

    After doing a few memory dumps and diving into them using and hex editor I found five regions, I refer to them as slots, that were likely to contain data related to battle videos.

    Offsets based on a 0x08000000 region dump of a Pokemon game: 1FBA70, 208E40, 2E74AC, 8D6D30 and 8DED48.

    Every battle video has always a size of 2E60 and they always start with the following hex values: 0X 81 E2 00 00

    As far as I know X can be anything between 0-F.

    Experimenting:

     

    1 - Clean boot of the game without any battle video uploaded and five stored on extdata:

    Slot 1 contains data similar to the latest video locally saved but the game crashes trying to read it. Slot 2 contains always a clean 1:1 of the battle video.

    Only Slot 2 data can be read by pkhex. Slot 3 and 5 are almost empty while Slot 4 contains lots of unknown data.

    2 - Writting a battle code and waiting on preview:

    Slot 1 and 2 remains the same. Battle video is almost 1:1 copied to slot 4 and 5. Slot 3 contains traces of the video but PKHeX is unable to read it and the VS. Recorder cannot as well.

    3 - Watching the battle video from the code:

    Slot 1 and 3 remains the same. Slot 4 and 5 are bloated with unknown data. Slot 2 now stores the clean 1:1 copy of the battle video playing.

    4 - Going back with the preview still there:

    All remains the same.

    5 - Closing the preview:

    All remains the same.

    6 - Previewing a stored video:

    All remains the same.

    7 - Watching a stored video:

    All remains the same except that the video currently played is now copied onto slot 2.

    8 - Closing Vs. Recorder and opening again:

    All is back to the initial state except that now Slot 5 contains unknown data.

    9 - Reading another battle code and staying on preview:

    All is the same as step 2.

    10 - Playing the video:

    Slot 4 is full of crap. Everything remains the same except that Slot 2 now also contains a 1:1 copy of the video.

    11 - Opening preview of another battle code:

    Slot 1 stays same as always. Slot 2 still contains copy of the most recent video played. Slot 4 and 5 are identical and readable with PKHeX.

    Slot 3 contains references to the actual preview but is no readable by anything.

    12 - Watching the video:

    Slot 4, Unknown data, Slot 5, 3 and 1 the same. Slot 2 is a clean copy of the battle video.

    13 - Uploading a stored battle video, closing and opening VS. Recorder:

    No difference in comparisson with step 1.

    Conclusion:

     

    Slot 1 -Always stays the same and stores a file similar to the most recent battle video stored on extdata but it's structure makes it unreadable for both VS. Recorder and PKHeX. Contains ekx data.

    Slot 2 - Stores a 1:1 copy of the currently played video. Stores that battle video until a new one is started. Of course this contains ekx data.

    Slot 3 - Contains several references to battle currently previewed/watched. While is unreadable by PKHeX and by the VS. Recorder it contains ekx data.

    Slot 4 and 5 - Sometimes stores nothing, sometimes stores almost 1:1 copies of the battle video previewed that can be read by PKHeX, not by VS. Recorder and sometimes apparently contains PSS passenger data. Not a trustable source.

    *I actually doubt this two ones are the only ones with this behaviour.*

    So the most trustable way to dump a battle video from a code is dumping Slot 2 while the video is actually playing. This will generate a 1:1 copy of the original file that can be read with PKHeX and even injected onto your own extdata.

    Commands for NTR Debugger:

     

    Slot 1 - data(0x81FBA70, 0x2E60, filename='Video1', pid=0x29)

    Slot 2 - data(0x8208E40, 0x2E60, filename='Video2', pid=0x29)

    Slot 3 - data(0x82E74AC, 0x2E60, filename='Video3', pid=0x29)

    Slot 4 - data(0x88D6D30, 0x2E60, filename='Video4', pid=0x29)

    Slot 5 - data(0x88DED48, 0x2E60, filename='Video5', pid=0x29)

    The pid may vary a lot. For me it's usually either 29 o 2b but the easier way to know is run the command listprocess() and search for pid that corresponds the process named "sango-X" on the list.

     

     

  4. I think you don't understand something; I mentioned Local Wireless events.

    Which would means chances are you do not have a PC client

    This ofc won't be useful at local events unless you bring you computer with you but for Internet and serial codes I always use the debugger since is more convenient because it lets you dump very specific portions of data and won't trigger any button press by mistake on the 3DS, this command dumps the .wc6 directly to your PC through wifi.

    data(0x8C695BC, 0x108, filename='event.wc6', pid=0x29)

    I clearly said this won't be very useful at local events. I just wanted to share the command in case someone finds it useful but of course is up to you to choose whatever method you want :)

  5. The 0x08000000 area of the Boss process has only 299007 (0x48FFF) Bytes. The black screen problem only occurs with larger data sizes as far as I know.

    Also after pressing "dump" you should wait until it's finished. It may take a while, but there shouldn't be any problems if you are patient.

    I dumped several times Pokemon RAM using NTR, also mainly the 0x08000000 region and being patient and it always crashed, but ofc I there's always the chance I've doing something wrong beside that. Anyway I still find more convenient the PC client if you already located the portion of the data you want to dump

  6. Now, the write up on how to obtain WC6full at Local Events:

    edit: I've yet to test this out at any local event, but I know it works for Internet and serial code events,

    and should also work, cause it's the same ingame collection process.

    Dumping pieces of RAM directly using the built-in NTR usually results in you having to reboot the 3DS after that because otherwise it will hang at a black screen.

    This ofc won't be useful at local events unless you bring you computer with you but for Internet and serial codes I always use the debugger since is more convenient because it lets you dump very specific portions of data and won't trigger any button press by mistake on the 3DS, this command dumps the .wc6 directly to your PC through wifi.

    data(0x8C695BC, 0x108, filename='event.wc6', pid=0x29)

    ofc you will have to replace the pid for the process with the one corresponding your game at the moment. In my case using an Alpha Sapphire cardtridge its usually tied with either 0x29 or 0x2b :)

  7. If I dont have a wc file for a certain pokemon and theres no file online. Is a pokemon I make exactly to its info still legal?

    Which event are you trying to reproduce?

  8. So basically what is left is:

    {0} learned {2} from {1} - I've doubts about if this memory allows HM/TM only or does take in count level-up moves as well.

    Encounter - Specific Slot

    {0} went fishing with {1}, and they caught {2} - Filter by SlotType? Slots that result from fishing need to be flagged when the program loads. I'm totally lost here. I originally though doing this through a simple array like the one used for PKMN Centers should indeed work, but since you mentioned the SlotType thing idk which other method already implemented could be used for this.

    I also just noticed two memories:

    {1} had {0} hold items like {2} to help it along. {4} that {3}.

    {1} used {2} when {0} was in trouble. {4} that {3}.

    In this two memories the allowed TextVar refers to an item but on both cases it allows to choose Key Items and HM/TMs that of course a Pokemon cannot hold/use under any case. Could be argued that the second one should allow TMs/HMs since they can be used to teach a move but I think the "was in trouble" part clearly states that it refers to in-battle usage.

  9. There's a little bug when the gender of the OT of a Pokemon is different than the current handler, if you click on OT it applies the one from savefile properly, but the color of the gender sign is not updated unless you click twice. Is a small bug I noticed but doesn't have a lot of relevance.

    Also do you think this: https://github.com/kwsch/PKHeX/commit/309d521201561feab43a347cc76671407332e2b8 could be applied in case we're loading a box as well?

    The next thing are a few extra things that could be checked from the memories in order to catch some more errors when genning a Pokemon.

    {0} became {1}'s friend when it arrived via Like Trade - This cannot be OT's memory since is not possible their first met was a trade.

    {0} encountered {2} with {1} using the Poké Radar - This cannot be OT's memory if the origin game is not X/Y since this item doesn't exist in OR/AS. Would be legal as notOT as long as the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} flew, carrying {1} on its back, to {2} - This is illegal for any mon that can't learn Fly

    {0} hatched from an Egg and saw {1} for the first time at - Is impossible to have this memory as nonOT's since hatching an egg automatically makes you the OT.

    {0} learned {2} from {1} - Here we should at least check if the corresponding move is legal for that Pokemon to know. But this may vary depending of it's traded or not, and depending if it's original game is X/Y or OR/AS since some mons have different level-up learning tables and tutors only exist in OR/AS. So this memory would be crazy to fully check.

    {0} looked down at the world from a tall tower where it went with {1} - This refers to Sky Pillar, so it would only be a legal memory to have for OT's if origin game is OR/AS. Would be legal as notOT all the time unless the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} met {1} at... {2}. {1} threw a Poké Ball at it, and they started to travel together - This is illegal to have as nonOT's memory since stealing Pokemons is morally wrong.

    {0} participated in a contest with {1} and impressed many people - Illegal to have as OT's memory if game of origin is X/Y since contests don't exist there. Would be legal as notOT unless the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} participated in a contest with {1} and won the title - Exactly the same as the previous memory.

    {0} saw {2} carrying {1} on its back - This would become illegal if the Pokemon {2} refers to cannot learn Fly.

    {0} saw itself in a mirror in a mirror cave that it went to with {1} - This is illegal as OT's memory if original game is not X/Y since this refers to the mirrors on the Reflection Cave. Would be legal as notOT as long as the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} soared through the sky with {1} and went to many different places - This is illegal for OT's memory if origin game is X/Y. Would be legal as notOT unless the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} surfed across the water, carrying {1} on this back - This is illegal if the Pokemon cannot learn Surf.

    {0} used {2} at {1}'s instruction, but it had no effect - Here we should at least check if the corresponding move is legal for that Pokemon to know. But this may vary depending of it's traded or not, and depending if it's original game is X/Y or OR/AS since some mons have different level-up learning tables and tutors only exist in OR/AS. So this memory would be crazy to fully check.

    {0} used Waterfall while carrying {1} on its back - This is illegal if the Pokemon cannot learn Waterfall.

    {0} was able to remember {2} at {1}'s instruction - This is illegal if the Pokemon cannot relearn the specified move because it's not on his level-up movepool or on the relearn moves.

    {0} was impressed by the speed of the train it took with {1} - This is illegal for OT's memory if origin game is OR/AS since the train only exists on X/Y. Would be legal as notOT as long as the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} was with {1} when (he/she) build a Secret Base - This is illegal for OT's memory if the origin game is X/Y since Secret Base only exists on OR/AS. Would be legal as notOT as long as the current handler is on OR/AS but we don't always have a save file loaded to check this.

    {0} was with {1} when (he/she) caught {2} - This is illegal regardless if {2} refers to a Pokemon that cannot be caught in-game and only obtained through events like Jirachi, Celebi, Volcanion, Diancie, Hoopa... etc. It may be illegal for OT's memory if the Pokemon original game is X/Y and the Pokemon {2} refers to one that's not on Kalos Pokedex.

    {0} was with {1} when (he/she) went to a boutique and tried on clothes, but (he/she) let the boutique without buying anything - This is illegal for OT's memory if the origin game is not X/Y since character cutomization only exists on those games. Would be legal as notOT as long as the current handler is on X/Y but we don't always have a save file loaded to check this.

    {0} went clothes shopping with {1} - The same as the previous memory.

    {0} went fishing with {1}, and they caught {2} - This is illegal if the Pokemon {2} refers to cannot be caught using a Rod.

    {0} went to a Pokémon Center with {1} to buy {2} - This is illegal for OT's memory if the origin game is OR/AS since the shop is not integrated onto the Pokemon Center in Hoenn. Would be legal as notOT as long as the current handler is on X/Y but we don't always have a save file loaded to check this. This also would be illegal if the current item cannot be bought on the shop.

    {0} went to the Pokémon Center in {2} with {1} and had its tired body healed there - This would be illegal if the Location specified doesn't have a Pokemon Center. THis would be illegal for OT's memory if the Origin game doesn't have a city named after the location specified. As always we should not check the nonOT's memory info when it's tied to a savefile we may not have loaded.

    {1} asked {0} to dive. Down it went, deep into the ocean, to explore the bottom of the sea - This would be illegal if the Pokemon cannot learn Dive. This would be illegal as well for OT's memory if the original game is X/Y since there's no zone for diving there. As always we should not check the nonOT's memory info when it's tied to a savefile we may not have loaded.

    The Move Deleter that {0} met through {1} made it forget {2} - This would be illegal if the move {2} refers cannot be learn by the Pokemon by any method.

    All of this is going to be a pain to check, and I'm sure I missed some more specific things that could be checked on the memories, and I don't know if you wanted to spend any time on this. I would not mind doing it myself little by little but first I wanted to know your opinion.

  10. Battle videos stores as current level the one used during battle. So per example a VGC battle locks all the mons to level 50, that may lead to issues like invalid current level being lower than the met one.

    Also notice the battle video store mons name meeting the language of the player game is using them, but still stores them as the original language, without flag on the nickname.

    If I playing with a spanish language-set game play against japanese language-set game, the battle video will save all the of my mons with the corresponding spanish name and all the Pokemon from the other trainer with the japanese name regardless of what the real original language is. Per example my Xerneas with japanese name would be save as "Xerneas" inside the battle video (without flag on nickname) instead of "ゼルネアス" which would be the correct name.

    This actually only affects videos produced from battle where nicknames are not show and leads into PkHeX into marking them as illegal because "Nickname does not match species name."

    You wouldn't really want to prevent PkHeX from marking this mons as illegal when loaded from battle videos you because people would probably just drag and drop them into their saves without being aware of the problem. The big problem is another:

    I actually have two versions of the PkHeX binary, and old one where the legality checker was implemented for the first time, and the latest one. Tried to open the same battle video with both. Loaded the same Gengar I know is completely legit from the battle video to Editing Tabs on both. One flags it as illegal (the most recent one) and the other not. "Invalid: GeoLocation -- Previous country of residence but no Handling Trainer."

    I compared both and what I can see is the most recent version is unable to read latest handler (no-OT) memories when it's loaded from a battle video. I also noticed that PkHeX shows non-OT friendship on the main tab regardless of if the current handler is the OT or not. Of course all of this only happens when the program loads the Pokemon from a battle video, works correctly when loading a separate .pk6 or a complete save file.

  11. When this error shows up "Invalid: GeoLocation -- Previous country of residence but no Handling Trainer." it unlocks the part of the memories regarding latest regions the pokemon was on, but only the slot for the latest residence, if the Pokemon has other residences set on Past 1, Past 2, etc... you won't be able to edit them as they're still read only.

    Workaround for this is to set a latest handler ot to allow editing all of the boxes, but I assume this is not how it should be working.

    Thanks, you're doing an awesome work on the leglity checker! <3

    P.D: Also notice Hidden Abilities are always incompatible with Apricorn Balls

  12. Caught in-game Plusle on game set to spanish, changed nickname to "Posipi", the french version of it's name. PKHeX reports it as ilegal "Invalid: Nickname matches another species name (+language)." even obviously isn't, nickname flag is marked this way.

    Also had a Talonflame caught on a japanese language set game, but has name set to "Talonflame", without the nickname flag set. Is also marked as illegal even though is perfectly legal because if you evolve a Fletchinder with japanese name on a game set to spanish (in my case, but english should be the same) the name will be updated to the language of the game it was evolved on, but keeping the japanese flag as PKHeX reports. I've manually experimented to check this.

    So is perfectly posible to have a Pokemon with a name, but not nickname, that doesn't fit the origin language as long as it has a preevolution.

    Also just noticed that PKHeX doesn't check memories of Pokemon that evolve through trade. A Gengar without memories other than with OT should be illegal, but it still not marked as that.

  13. This part of ORAS savegame structure wasn't documented here: https://projectpokemon.org/wiki/Pok%C3%A9mon_ORAS_Save_File_Structure

    So I've spent some time dumping my Alpha Saphire savegame to locate the log of the Battle Institute records. So I succesfully did and wanted to share the results here. I assume all the values are stored the same way on every sixth gen game, but the starting offsets for XY are probably different from the ones on ORAS.

    Every type of battle have up to 5 slots to save your better records, adding a new record reorders the list of records showing the best on the top and the worse on the bottom. Getting a new record that matches the same amount of points than an older one puts the latest one over the older.

    When the list is already filled with 5 records and you get a better one, it will automatically delete the record on the bottom of the list to make room for the new.

    /// Individual battle records ///

    Starting offset: 1C000

    Finish offset: 1C063

    Size of every record: 14

    First Pokemon is stored on bytes 5-6, second on 8-9 and third on C-D.

    They are referenced by their Pokedex entry number.

    /// Double battle records ///

    Starting offset: 1C064

    Finish offset: 1C0C7

    Size of every record: 14

    First Pokemon is stored on 5-6, second on 8-9, third on C-D and fourth on 10-11

    They are referenced by their Pokedex entry number.

    The two first bytes of every record refers to the amount of points obtained for that record. This means the bigger number you can store is 65535, but the game simple glitches the quantity if is bigger than four digits, so you're restricted up to 9999 (which I don't think is still a legal value to obtain). The next two bytes are always 10 B1 in the case of individual battles and 10 A9 in the case of double battles, but I really can't figure what are they for. However leaving them untouched does no harm when modifying other values of the record.

    Remember every value stored as hex on two different bytes is read starting from the last one

    Per example, 85 02 is read as 02 85, which in decimal means 645, the pokedex number for Landorus.

    Example of individual record:

    00 09 10 B1 06 00 00 00 85 02 01 00 82 02 00 00 00 00 00 00

    2304 points using Charizard, Landorus and Thundurus.

    Example of double record:

    37 12 10 A9 06 00 00 00 85 02 01 00 82 02 00 00 5E 00 00 01

    4663 points using Charizard, Landorus, Thundurus and Gengar.

  14. I managed to succesfully extract it from RAM and after selecting the exact bits I was able to read the file PkHeX. So I will leave what I did

    Here's the results of my research:

    I did this with a 10.5 New3DS running Reinand CFW and after aplying NTR CFW patches to dump memory of a EUR physical copy of Alpha Saphire.

    You ofc need to be connected to the internet, sign-in the Vs. Recorder and write the code of the battle you would like to dump, once it shows the preview of the teams and the trainers teams we're ready to go. Open the NTR Menu > Process Manager > Search on the ProcessList for 0000002d > dump > And choose address 0x08000000.

    After pressing A button to choose this option the game will likely trigger that press and attempt to load the battle crashing to a black screen but this is "normal" (in the sense that it always happens and cannot figure a fix for it).

    Just wait until a message in the botton screen appears saying that "dump finished at addr: whatever"

    Now you will probably have to force the 3ds to shutdown by keeping pressed the Power button until it does.

    A new file named "dump_pid2d_0.dmp" will be on the SDCard. Copy that to computer and open it with any hex editor. HxD is really recommended.

    There're multiple offsets in this file where your desired battle is stored. Usually it will cloned at many places. They are usually stored at 1FBA70, 208E40, 2E74AC, 8D6D30 and 8DED48.

    However if you struggle finding them there and you do not plan making any automated app to import those bits you need to know that the video files always starts with the following hex values "0X 01 81 E2 00 00" where X usually is a 0, I also had a few examples when it was a 5 or a 7. Anyway you need to select every bit after the 0X one I mentioned (included) until you get a length value of 2E60.

    Now you open a new file with HxD and copy everything you selected there and save with any desired extension-less name. If you did everything right you should be able to open this with PkHeX to see the 12 Pokemon used in the battle.

    Notice that if you have uploaded battles in the past when you enter the Vs. Recorder while connected to internet it will detect those and copy them to RAM.

    In my case I had one battle I uploaded in the past, so that was copied to the 1FBA70 offset and the other four I mentioned before were filled with copies of the one I read from the code. You can guess which one is the one you want by looking a bit down after looking for the starting offsets, the name of the trainers involved in the battle should I appear close to it.

    [ATTACH=CONFIG]12886[/ATTACH]

  15. Recommended to ignore this thread and instead read this one:

    https://projectpokemon.org/forums/showthread.php?48749-Dump-online-battle-videos-from-codes

    I know that with homebrew I'm able to dump the battle videos from my own extdata to read them with PkHeX.

    I basically wanted to know if there's any difference between the battle videos files located on extdata and the ones I can see by writting a code of the battle on the Vs. Recorder while being connected to Internet?

    I assume doing this basically downloads the battle vide file from somewhere on Global Link servers and temporarily stores it on the RAM to read it.

    Would possible to extract this video from the RAM to open it with PkHeX? Has this been already documented or it's a totally new idea?

    I've two EUR 3DS (one Old and one New) both running CFW so I would be able to dump ram with NTR to test anything if any dev would like to research this.

    Thanks in advance for any answer.

  16. So the only Pokemon I've left to register on my Pokedex was Mew. I used the just introduced feature to convert older events into pk6 and succesfully injected a 10th G/S anniversary Mew into my savefile. The "Modify Pokedex" option was checked, so it correctly updated the Pokedex to register 151 entry, but I noticed something weird, and it's that the Dexnav level for Mew is still 0. First I though it migh be because it cannot be caught over dexnav, but then I also checked my entries for Kyogre/Rayquaza and even other event legends like Celebi/Jirachi and all of them have the dexnav level set to 1.

    -------------------------------------------------------------

    I also wanted to know what the "Encryption constant" is and when should I reroll it.

    Thanks in advance for the answer and for your wonderful job here :)

  17. Okey, this is what I did.

    1. Opened my main file backup.

    2. Disabled PK6 editing.

    3. Took a legit Kyogre just caught in-game. THIS WAY IT HAS ALL THE BOXES UNDER RESIDENCE IN BLANK.

    4. Open it on editing tabs and without modifying anything set it to another slot.

    5. Now open the just wrote slot and check Residence. It updated it to meet my region and sub-region.

    This doesn't make it illegal since it could be generated that way by putting it on PokeBank and then taking it out, but it's definetely not how it should be working I guess.

    ---------------------------------------

    I also noticed that changing language to anything else than english (going back to english doesn't fix it), makes that everytime you set a Pokemon to a box slot the sprite is not showing, and it's impossible to read that slot. However saving the file and opening it again shows the sprite and fixes that.

×
×
  • Create New...