Jump to content

suloku

Innovator
  • Posts

    741
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by suloku

  1. Actually, I'm a little tired of testing for today, it's been a long afternoon until I've located that single byte (went trough a whole family guy season...). In any case I went and tried 0x21 (since I knew what 0x01 and 0x20 produce). This didn't produce the two previous spots, but spot 466. This is consecutive with the other map I got previously (465 and 204), so maybe I messed up and 0x20 produces spot 465 and 204 is the dayly spot for the game. 0x21 is 33, there are 33 spots and crescent isle takes 0x01, so if we go by map order 02 should be spot 184 and makes sense 0x21 is the last map. You can have up to 30 street passes, so up to 30 spots, gonna test the next 29 bytes that go after 0x307D4, see if I get 30 spots + daily one. EDIT: I remembered that I found 33 120 byte slots, so maybe it is possible to have all mirage spots unlocked at once, even if they capped the streetpass limit to 30. You can get spots every 8 hours after all. EDIT 2: I tried 32 consecutive bytes and what I got was no mirage spot at all (only the dayly one was still there). Seems we'll need a save with several passed spots for more clues, blindly testing makes no sense when we can get such a save.
  2. Good news! I've found where the PSS mirage spots are stored in the savegame (well, at least 1 of them). And even better news: it seems it is totally independent of other passerby data stored there. Currently the block 0x37 I've tested is all zeroes but a single byte. 0x307D4 is the magic byte I've located, set it to 01 for Crescent isle (and cresselia can be battled). 0x20 for spot 204. Almost all of 0x307D0 to 0x30800 is 0x00, so either testing or getting a savefile with many mirage spots (that would be better) will be the best to find the other isles. Still, since no hidden items are available with this method, discovering how to generate values at 0x1600 for any TID would be nice. edit: My guess is that the values are stored when the passerby data is got, then they are wiped when the day changes. I had pss streetpass data, used it and lots of mirage islands appeared. I forgot to save and I basically lost all those islands, so this kind of supports my theory.
  3. That's why I suggested to previously hex edit the savefile to delete the full 0x37 block, so the only data in there is related to that single streetpass.
  4. Turns out PSS for streetpass was already documented in the structure: 0037 30A00 000078B0 75FD2 Secret Base (Passerby) & Passerby Event Valuesnote: all offsets nted in the wiki are shifted by 0x5400 (I guess that's powersaves related), so the actual offset in the main file is 0x2B600 I pasted the block from the SLAYER's savefile onto my savefile and Crescent isle appeared. theSLAYER, if you get some spare time, could you delete the whole block in a savefile, fix the checksums, load it on a 3DS and get a single streetpass on that save? Locating a single entry would be much better to try and find the structure, hopefully it has an island value and a date value we can mess around with. From the game I infer there might be 30 streetpass entries allowed. Also, maybe the streetpassed eon ticket is also at block 0x37 since I have it on my save I'll try getting a save without any kind of eon ticket and test it out. I'll go and try with the online PSS for now, they are more interesting since, according to bulbapedia, streetpassed islands don't have hidden items. EDIT: serebii on hidden items "However, there is a drawback. While you can get the Pokémon and main items that are on these islands, if you receive the islands through Passing By other trainers, you will not have access to any items found by the Dowsing Machine. They only appear on the Mirage Spots indigenous to your game each day." EDIT2: turns out eon ticket was already added to pkhex, since the official eon ticket wondercard "only" enables the streetpass ticket event: https://github.com/kwsch/PKHeX/blob/12dbbf974560fa9abac71c765709bf30cb6d58a9/PKHeX/Subforms/Save%20Editors/SAV_Wondercard.cs#L307 If you delete the eon ticket WC in-game (or pkhex after saving and re-loading the file) it's the same as a streetpassed eon ticket.
  5. What the title says, does anyone here have such a friend list? With homebrew the friendlist can be dumped and restored to any console, so having a friendlist file with all the safaris available would be great, specially whenever the PSS is shut down. I've researched how to unlock the 3rd slot in the savefile, so that isn't a problem, the only problem is getting a friendlist that allows to catch all possible pokemon. I can do one myself, but asking to 71 specific people to get the friend codes needed registered might prove difficult and time consuming, so I wondered if someone already did.
  6. I guess eevee due to the new Z move? Maybe it rises non evolution eevee to the level of it's evolution counterparts.
  7. Apparently shiny Xerneas code is being given with "Revista Oficial Nintendo" #290 in Spain. For the legendary HA birds the online version also had a code (actually, I was told you could get more than one if you used more than one e-mail address) and the Xerneas code might be the same. http://store.axelspringer.es/videojuegos/revistas-videojuegos/revista-oficial-nintendo/n-290-revista-oficial-nintendo.html I guess anyone from europe could buy the online version and get the code.
  8. Well, if we never get to more than we got (setting TID to 0x0000 and modifying the value at 0x1600) we'll be missing values that produce these maps: Other than that the focus should go finding a way to calculate the value at 0x1600 for a given TID that produces desired island, so this can be added to pkhex for easy editing, or even do a 3DS homebrew to change the island (since we can only get 1 save at a time). If sort this out I may ask gocario to implement it in phbank as a menu option for XY saves (not sure if he'll add but it's worth asking). PSS research is still to be done, if you have a savefile that can access mirage spots and has never streetpassed or connected to internet it would be great, as this kind of save is probably nowere to be found unless playing the game for that purpose.
  9. I was editing my previous post, so I'll just quote myself on this. Gonna see if this applies to other saves as well. Edit: also, we are missing TID/0x1600 combinations for these maps:
  10. I think method 1 is the easiest and cleanest one for now. As I said, not a fan of teleportation (might alter too many things in the save). Next day method would be valid, but that would require knowing how the isle is exactly calculated and fullfilling other requirements such as saving at a given map and coordinates so the value is correctly calculated, so again method 1 is better as there's still save editing involved. I think it's overly complicated. The best method would be the unresearched pss data injection. I also wonder how the streetpass eon ticket works. I have it on my save, but I don't have a second 3ds to test (but I guess I could borrow one from a friend), but this eon ticket streetpass thing isn't as interesting given a wondercard was made for it (still curious if that could be tweaked to pass other items, i.e. Master Balls or maybe they coded it to only work with the eon ticket event). Testing would be much easier if I could test on citra. EDIT: @theSLAYER I finished trying the 33 set, unfortunately some repeated too, so I was wrong about them being some kind of bitflags (I was referring to the output, maybe after doing some operations a 4 byte number with all but one bits was set, that gives 32 possibilites and all being set/unset for crescent isle). In any case, I found a crescent isle value for TID 0x0000: FF FF FE FF Here's again my TID/0x1600 combination that outputs crescent isle: TID (61931, 0xF1EB), 0x1600: 76 CC C9 91 Let's see if we can find any correlation... EDIT 2: So, I was playing with my TID+0x1600 numbers and... TID : 0xF1EB -binary-> 1111000111101011 If we thin of the value ate 1600 as an u32, then the number should be 0x91C9CC76, now look at 0x91C9 in binary -> 1001000111001001 1111000111101011 (TID, 0xF1EB) 1001000111001001 (0x1602-3, 0x91C9) An AND operation outputs 0x91c9 (and an OR operation 0xF1EB). Coincidence?
  11. I thought they were bitflags, xored in some way, so I tested 0xFD (11111101) expecting it to generate 465 spot, but I guess there's more to it as it generated spot 462 I think I'll start with FFFFFFFF and go a single bit at a time, see if I get any repeat, there are 32 spots and 4 bytes have 32 bits after all. FF FF FF FF - 204 7F FF FF FF - 187 BF FF FF FF - 207 DF FF FF FF - 463 EF FF FF FF - 195 F7 FF FF FF - 188 FB FF FF FF - 207 --> same as BF FF FF FF FD FF FF FF - 461 FE FF FF FF - It seems I already got a repeat... I wonder how the island is calculated.
  12. Ok, I've been using a 3ds hex editor to do it on console, seems I was editing 0x16000 instead of 0x1600... Gonna start at 21 and keep going down, will keep editing this post. FD 00 00 00 - 462 21 00 00 00 - 465 (loop?) 20 00 00 00 - 197 -> you got this one with 01 00 00 00 1F 00 00 00 - 201 1E 00 00 00 - 463 -> you got this one with 06 1D 00 00 00 - 465 1C 00 00 00 - 465 1B 00 00 00 - 1A 00 00 00 - 19 00 00 00 - 18 00 00 00 - 00, 21, 1D and 1C produce 465...not sure if secuential incrementing is the best way to approach, gonna try something EDIT 2: I've just realized there are 32 possible islands, and 4 bytes have 32 bits. They are bitflags.
  13. No, I haven't tried the teleportation, as I'd rather change the island than teleport, but will try later if you want. Seems I'm stuck with value changing: 00 00 00 00 - 463 01 00 00 00 - 465 02 00 00 00 - 465 03 00 00 00 - 465 04 00 00 00 - 465 00 00 00 01 - 465 Don't know how this is calculated, but it seems this will be even trickier than expected.
  14. Are you listing islands with TID 0000? I'm doing that, so maybe we should plan it out to not repeat ourselves. What pkhex exports and what is stored in pss might be different. Best way would be to delete all info in PSS blocks, then do a single streetpass and compare the saves.
  15. Ok, used my crescent island savegame, changed TID to 0000000, loaded it tomorrow and generated island was 463. 0x1600 holds this data: 27 99 15 7C 0x1600 before changing TID (which is 61931, F1EB) was: 76 CC C9 91 But I can't figure out anything out of it. Map location and probably other values are on when calculating the value at 0x1600. Then that value at 0x1600 it is used against TID to determine the current spot. I think the best approach now would be to find a value in 0x1600 that generates crescent isle with TID 0000, then try to figure out how TID works in the ecuation so we can calculate a value that generates desired island for a given TID and value found at 0x1600. Using ctrxexplorer for hex editing and phbank for checksum fixing should speed up the testing process. About PSS data, maybe pkhex has more about it in the code, but the most logical way would be that each pss data holds both date and TID information, and that spots are calculated on the fly with those. EDIT: some tests on my save, current day, all with TID 0000 00 00 00 00 - 463 01 00 00 00 - 465 02 00 00 00 - 465 03 00 00 00 - 465 04 00 00 00 - 465 00 00 00 01 - 465
  16. I also thought about TID/SID, and the good news are I ended up at the same map as you! Now we just gotta figure out how TID is exactly used to store mirage island at 1600. This may also affect PSS data if TID is stored there, so making a dummy pss data file with different mirage spots seems closer. Gonna time-trave with a TID 00000 savefile to get some new islands and values at 1600.
  17. 00 00 00 00 unlocks map 194 for me. Have you checked if it's the whole 4 bytes what change mirage spot? It should only need 1 byte for that, I don't think they are bitflags as you previously sugested, I'd rather just number them from 0-32, it would just need 6 bits to represent all the islands with spare slots. I'll try with the other save I have, that generated a different island. If 00 00 00 00 takes me to the same spot maybe it's TID/SID related (they need a per-game factor for randomization after all for streetpass)
  18. Gonna try some of those. Here's my savefile, saved today (October 19th, but as I said loading any other day [at least in the future] produces crescent isle too) with crescent isle as current mirage spot (no passed spots in the save): https://www.dropbox.com/s/hirlbdizb7dpzjm/main?dl=0 Data at 0x1600 is: 76 CC C9 91 EDIT; Tried changing it to 00 00 00 0B, and mirage spot changed, but it took me to map 193 instead of map 208 as the list you posted hinted. Seems this will still be tricky to work out. ps: by the way, yesterday I went and discovered how the friend safari in XY is stored (for the locked/unlocked slots status).
  19. Well, I'm a little puzzled. From my tests I know mirage island is affected by many things, but I thought I had found one of the determining factors at 0x1200. Also I want to make clear I wasn't trying to change the CURRENT mirage spot, but what generates the new mirage spot on the next day. Maybe your are talking about the current spot for the day? theSLAYER, my I have one of your saves trough pm? I can post mine too if any interrst. I'll wait for your compilation. Today I plan on looking into other spot generation via pss, maybe it's easier to inject and modify pss data after all?
  20. I've managed to pinpoint the main block that affects mirage spot location: 0x03 (0x1200-0x1400) As I stated in my edits in the post above, map coordinates and other unknown circumstances also affect mirage spot. Changing the block 3 from my save that generates crescent isle to another one produces a different mirage spot, even when the savegame is saved at the same coordinates, but I guess this is a good starting point. Now I'll try to see if there's a given byte controlling mirage spot. May not be very useful if we can't edit the save so mirage island gets generated though... I guess I can do the same strategy to try finding other blocks that affect mirage spot by avoiding modifying block 3. EDIT: PKHex has this info about block 3: public int ResumeYear { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x4); } set { BitConverter.GetBytes(value).CopyTo(Data,AdventureInfo + 0x4); } } public int ResumeMonth { get { return Data[AdventureInfo + 0x8]; } set { Data[AdventureInfo + 0x8] = (byte)value; } } public int ResumeDay { get { return Data[AdventureInfo + 0x9]; } set { Data[AdventureInfo + 0x9] = (byte)value; } } public int ResumeHour { get { return Data[AdventureInfo + 0xB]; } set { Data[AdventureInfo + 0xB] = (byte)value; } } public int ResumeMinute { get { return Data[AdventureInfo + 0xC]; } set { Data[AdventureInfo + 0xC] = (byte)value; } } public int ResumeSeconds { get { return Data[AdventureInfo + 0xD]; } set { Data[AdventureInfo + 0xD] = (byte)value; } } public override int SecondsToStart { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x18); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x18); } } public override int SecondsToFame { get { return BitConverter.ToInt32(Data, AdventureInfo + 0x20); } set { BitConverter.GetBytes(value).CopyTo(Data, AdventureInfo + 0x20); } } What affects mirage spot generation is either resume date time or the 4 bytes that come after it, gonna try modifying those.
  21. I've checked the save, it seems he has some of the pokemon from the save in this thread in there. I've seen some fishy things in OT# like the 3 legendary birds having the same ID# and OT#, which would be extremely rare, so I guess he just used other events as basis to generate the missing ones. While technically legit, they don't seem like any of the missing events would be in the save. I've went and asked in youtube, let's see if I get a reply. Btw, at filb.de the admin Buoisel had at some point a dump of a savegame for German Mew and Celebi from the celebi Tour and was prone to share them. I haven't been able to contact him, but it would be great if we could get those saves, maybe he has more than 1 celebi from gen 2? A legit shiny one would be really awesome to have, only japanesse players can go and softreset for them.
  22. Ok, some quick report: - I'm lucky, my save for today features Crescent island! - I restored my previous savegame, it still got crescent island, so either I was really lucky twice or mirage spot is generated using a seed in the savegame. - I restored a save from 2015, mirage spot is totally different. Then I went back trough several of my savegames. I haven't really played this year, and I've just been receiving the 20th anniversary events. All those saves generated crescent isle, as I haven't really played. I've checked on pkhex, I haven't played since 7th january, and all those saves get crescent island. Good thing is now I have a save with crescent island as random island from today, and tomorrow the island will be different on the very same save. There shouldn't be many different offsets, the only thing I did was load the save, then save and go check which island was there, I'll do the same tomorrow, with the same save and I expect a different island and hopefully very little changes in the savegame, at the very least very little differences and even less blocks, and since the saves are the very same, changing the blocks shouldn't really matter. I'm starting to think the island is generated by some combination of "last savegame date" + "TID/SID". I should test this by changing the 3ds clock to 3 days ago, wait 3 days and see if crescent island is generated again. I'm gonna test changing those on pkhex, see if I get a different mirage spot. If I do, then there's really no mirage spot stored on the save for the random island (PSS/streetpass ones may be different if stored on the savegame). I'll try asking on ircc to 3ds devs if there's a (known) way to change date/time without the 3DS marking the change in system time, thus rendering timed events useless. There should be a way. ps: will test if it can boot without SD, but why wouldn't it? In any case it may boot and say streetpass is disabled. EDIT2: @theSLAYER Seems last time saved has nothing to do with it. I've noticed something comparing my previous save and today's save (in-game), and that is that block 37 is totally different " Secret Base (Passerby) & Passerby Event Values". Seems it might really be related to it, or maybe it's because the game picked up some of my streetpass data I had. Gonna re-test. Also, I've found out that the dev application "Config" can change the clock without triggering anti-time travel, so that will help with research: https://www.3dbrew.org/wiki/Anti_Time-Travel https://www.3dbrew.org/wiki/3DS_Development_Unit_Software#Config https://www.3dbrew.org/wiki/Config_Savegame I'll go the legit way since it's only a few hours until next day, but then I'll do further checks with that tool. That will allow testing the same day with the same savegame under multiple circumstances. In the meantime, gonna try changing block 37, see what happens. ps: the game does not run without SD card, that actually surprised me. In any case jksavemanager/savedatafiler can backup/delete/restore exdata for testing EDIT 3: so as side effect I've seen there's a friend code tool that actually adds friend codes to the friend list, furthermore they are enabled and ready to use in the safari zone. That means there's a way to easily unlock all safari's slot 1 and slot 2. Slot 3 would be trickier, but wether slot 3 has been unlocked or not seems to be stored in the savegame, so getting all safaris should be possible without any online interaction. EDIT 4: So far not much progress. I've found out that the mirage spot is affected by the following: - Map location were you last saved (if you save at the very same spot, mirage spot won't change, I'm saving after using a PC at a pokemon center, since that ensures the same coordinates each time). - After catching a pokemon, saving at the same spot will no longer generate the same mirage spot. - I changed injected blocks 0x4 and 0xA from my save that has crescent island to an older one (with different mirage spot, put saved at the same coordinates) and the mirage spot still didn't change. I'll start trying block substitution, maybe teleporting onto crescent island and being able to battle cresselia with the data you posted is maybe luck from npc data from another map triggering the event on cresselia map? I'll use the half save strategy: will substitute half the blocks, see if any unlocks crescent isle.
  23. They are, but acording to bulbapedia, you can't get the hidden item from street pass ones.
  24. PGL goes down for gen 6 on november 1st, but the actual online features such as trading, PSS and wondercards should still work I guess. theSlayer, did you ever try the full block approach to at least locate the block where current mirage island resides? I'll probably do that, starting with the suspicious blocks. I'll make two saves on the same day with different island on it, then start swapping data blocks from the save in hopes I find the one that changes the mirage spot. Knowing where the data is stored should be the first step.. I've just read at bulbapedia that the hidden item in each spot depends on wether the spot was received via streetpass (there will be no item at all) so maybe spots received via streetpass are at extdata, but the ones from pss are treated differently as it seems. Also, is there a limit to how many mirage spots can be enabled at a single time? I think there isn't but can't find any info. EDIT: also, someone with 2 consoles and 2 games (at least one should be a cartridge) could try the following? 1.- Streetpass to get a second mirage spot 2.- Save and shutdown console 3.- Extract SD card (this should prevent any exdata at all) 4.- Run the game and see if the mirage spot from the street pass is still there. That would mean new spots from streetpass are saved to the savegame itself, and those spots must have some indicator that they are from streetpass to prevent a hidden item from spawning. EDIT 2: I just remembered I should be able to test the streetpass thing using homepass.
  25. So, doing those changes make crescent isle the one in the game, no teleportation involved? Do you have any rough idea of what's in each offset? I'm thinking on getting and comparing the data from other isles, hopefully it is random enough so the same save gets different isles via backup-restore. Being able to edit the save's current isle should be the easiest and fastest approach to this. Being able to inject pss data to have more islands on the same day would be the best outcome, but if we find were the current isle is stored, making a cheat plugin that allows to change the isle would also be a valid approach, since the ultimate goal would be to be able to visit the desired islands. EDIT: just checked overall structure of the save, 0x1400 is part of "Trainer Stat Tracking" and 0x2000 "Overworld Data (0x108 per Overworld Entity)". Now, I wonder what the relationship between the two regions is, I don't see why current island depends on both. ps: you should totally give JK savemanager a chance, just like savedatafiler...but better, main advantages are auto-deleting secure value and multiple save slots (and the choice to name/date them)
×
×
  • Create New...