Open HappyLappy1 opened 3 years ago
My initial thoughts are I should probably get a pokewalker to make this process easier for myself.
Could you explain further the things you mentioned for future reference? Particularly I don't see how a gen 4 spinda painter would be helpful.
Sure, I can do that, though a gen 4 spinda painter isn't that high on the list to begin with, since it'd only be useful when looking at spinda injected via the palm. Most of the tools under future reference are highly situational tools to begin with, which is why they might not even need to be incorporated to begin with, especially since the majority of them are already in my sheet.
As far as a Simple PID calculator and an Encounter Slot calculator, those might be a bit extraneous if they're incorporated into the Searchers and Generators. A simple PID calculator, which would presumably be used to check the PIDs for each nature, for a given TID, SID, forced gender, and gender ratio, would be convenient for people looking for a PID dependent trait on a specific pokemon, (ability maybe, but I'm thinking moreso wurmple evolution). This might be used to determine if a TID/SID pair can give the desired traits, rather than attempting to find a seed that has all 24 natures visible, just to see the PID to check if the modest wurmple will have the right ability, and evolve into Dustox.
Mini TSV support is also pretty niche, but the idea would be to add a way to search for TIDs and SIDs that would give a specific Mini TSV (Mini TSV = TSV >> 5). So if for example MiniTSV 103 evolved modest wurmple into dustox with the right ability, then the TID/SID searcher would search for seeds with an inputted Mini TSV (Or set of Mini TSVs). (TID ^ SID) >> 8 = 103
I already mentioned that the spinda painter would only really be useful for Palm Injection, but ROM dumping is already possible on 3DS CFW, so Spinda injection might happen in the future. Furthermore, Spinda are extremely useful in IRNG verification, which is the entire point of me using them in the first place. the Gen 3 Spinda painter was rather helpful in my Spinda aided RNGs, since I could use it to visualize the rough spinda spot locations before I injected them with PKSM, though a Gen 4 Spinda painter might not necessitate "hacking" to find the spinda spots, even if spinda injection itself could be seen as "hacking".
As far as Pokewalker Seed to Time compatibility, Reseeds operate on exclusively Hours, Minutes, and Seconds, so the current Seed to Time would not be able to accurately give a start time. A reseed Seed to Time might require the initial seed and the reseed, and would determine the date and time necessary to hit the initial seed, then the length of time that should occur between the initial and reseed. Maybe there would be a conversion to Milliseconds or something so that eontimer's custom timer would work, but that might be a bit more complicated, since calibrated delay would likely matter. People are actually likely to use this though (compared to say the Spinda painter), as reseeds can yield some pretty good spreads.
Finally, Mini TSV calibration aids would be sort of like the Lake of Rage gyarados SID calculator, but for a Mini TSV instead of a SID. By getting magikarp with specific IVs and natures, it's possible to POE their PIDs through the Magikarp Size guy, and Pokeathlon Stats. Knowing the PIDs means knowing the Mini TSV without a SID, and is not only sufficient for Pokewalker RNG, but could also lead to finding SID (assuming none of the easier options are available). Again, not sure how useful this would be, but if someone's dead set on getting their SID, and they're willing to do 0-32 egg PID RNGs after this (or even use the narrowed options to search for the TID/SID they hit with ID finder), this could be useful.
I've mentioned this before, but it would be nice to have some Pokewalker RNG support on Pokefinder. I'd be more than willing to help with this when/if you get around to it, and there's definitely more I'd like to see in terms of Pokewalker tools and gadgets, but this is a list of the core things that probably need to come first.
IV Searcher So as for an IV searcher and generator, the process is relatively simple. Pokewalker IVs are generated using "Wondercard IVs", but there are some limitations on which frames can be hit to begin with. There are Reseeds, which change these restrictions a bit, but Pokewalker initial seeds are limited only by their lack of delay, and the hittable IV frames. Pokewalker Initial seeds always have a delay of 0, but will still add the current year to the initial seed. This means that the last 4 digits of these initial seeds must be between 0x0000 and 0x0063, though on 3DS the range is actually smaller, due to the more limited year range (2000 to 2050). However, because the only way to advance IV frames on the Pokewalker menu is to send in pokemon, only odd numbered frames can be hit, since generating any pokemon consumes 2 IV frames without exception. Moreover, due to the space limit of the PC, there is a maximum possible IV frame of 1,081, assuming the PC was completely empty at the beginning of the RNG. A separate Reseed method will be necessary as well, because the initial seed for Reseeds is completely different, taking the sum of the base clock (3600h+60m+s) to get a new seed. As a result, Reseeds can only be between 0x00000000 and 0x0001517F. Reseed frames still can only increment by 2 at a time, however the first 3 frames of every reseed are used to calculate Pokewalker encounter slots, which means only even frames can be hit, with a maximum frame of 1,082 (one pokemon must start in the PC to cause a reseed). So for an IV searcher, there would need to be an "Initial Seed" method for delays between 0x0000 and 0x0063, that only searched for odd frames between 1 and 1081, and a "Reseed" method for seeds between 0x00000000 and 0x0001517F, that searched only even frames between 4 and 1082. People could still set their own frame ranges, maybe even like year limitations and Hidden Powers, but unless Pokemon can be deleted from the PC mid RNG, 1082 is the max. Then again, even if the 1082/1081 restriction isn't implemented, people will hopefully only go for possible frames, especially if they follow my guide. That said, if this is implemented with advances instead of frames, it's going to be difficult to adjust my sheet to work for both Pokefinder and RNG Reporter. Then again, if the goal is to port everything from my sheet into a pokefinder extension or something, (I'd want a lot out of pokefinder then, much more than just a IV and PID Searcher) that might be the way to go, idk. Potentially I'd also like to see a filter for Reseed specifically that reflects the encounter slots it generates, since those can be used for Reseed Verification. The lowest bit for IV Frame 1 of a Reseed determines the Species of Slot A, and frames 2 and 3 correspond to Slots B and C respectively. It's still more than possible to RNG a pokemon on a Reseed without a matching slot, but having the ability to filter by that would be nice. I can provide a list of courses and encounter slots, but I don't know for certain if Lbit 1 is say bellsprout or wobbuffet. I can test that if need be though, it just might take me a bit. IV Generator I mean, this should be pretty similar to the IV Searcher, and of course only the respective even or odd frames should be shown. However, it would be good to see frames 1, 2, and 3 of a Reseed, with the corresponding encounter slots rather than IV spreads. Other than that, It would be a lot like the searcher, excluding impossible frames and such. Like with normal Wondercard IVs, PID and nature should not be displayed, especially considering the species, gender, and in niche cases shininess are dependent on IRNG, not LCRNG. PID Searcher As far as PID searching goes, the line between generator and searcher is kind of thin. An initial seed Pokewalker RNG does not need to search for an initial seed, it already has one. A Reseed RNG though, can theoretically have any initial seed, and therefore wants a seed that doesn't have them waiting 23 hours, but also has a high chance of netting them the nature they want. Either the Initial Seed PID Searcher is the Generator, or Searching is done on the frames of a specified initial seed. For the time being, I'll describe this as if the Searcher is only for Reseeds. So, there would be a minimum IRNG frame that depends on how users plan to catch their pokemon, and the IV frame they're aiming for. This might be anywhere from 193 to 125820, depending on what the plan of action is. Anyway, Potential initial seed candidates will be searched on a Mersenne Twister, for whether
Seed % 24
is equivalent to the desired nature(s). While all IRNG frames can theoretically be hit, the ones that matter are the ones within the range of a user specified "offset". See, IRNG advancement is somewhat unstable, and even if you were aiming for a specific IRNG frame, you may wind up offset a multiple of 4 frames early, a multiple of 4 frames late, or somewhere in between, depending on the total number of times the Pokewalker connected to the DS. Furthermore, communication errors between the two may result in anywhere between 0 and 237 IRNG frames of advancement, so the goal is to find a seed with a frame with as many valid nature frames as possible within a set of 192 frames, the boundaries of which being a multiple of 192 frames away from the minimum IRNG frame. If 3600 is the minimum IRNG, the goal is to find a seed with a lot of matches between 3600 and 3792, 3792 and 3984, 3984 and 4176, etc. That said, blank connects themselves (the thing that causes 192 IRNG frame advancements and nothing else) can cause -4 offsets themselves, at an estimated rate of like 1 in 10 connections, so it might be smart to shift by -4 after 1920 frames or something, or by a user defined amount, idk. Anyway, I'm not entirely sure how it would be best to find the range of seeds to search, whether inputting the reseed directly is important, having a specified hour and minute, or having a range of hours and minutes, but the god seed may be on hour 16, when the reseed is on hour 13. Anyway, once a seed is found, the frame total should be displayed, as well as the number of required blank connects (how many increments of 192 were needed) and how many matches there are in that bracket of 192. Again, that might get a bit complicated, it may be easier to do that later on. PID itself wouldn't be displayed here, since multiple natures could be enabled, and the PID is nature dependent, and TID/SID dependent, as well as gender and gender ratio dependent, but not directly seed dependent. Maybe a list or count of which offsets are accounted for would be good as well, but a potential for 192 different values on a single line is not realistic... PID Generator This is a lot easier than a PID Searcher. Honestly, an "EGG PID" option like the one in RNG Reporter is good enough to make my sheet do the rest, though it needs to be in decimal, since sheets confuses hex with scientific notation. Anyway, for a full implementation of a PID generator, all that's needed is an inputted Initial seed, a minimum IRNG frame to start displaying from, a max IRNG frame to stop at, a drop down with all the possible offsets that could be displayed (like 0-192), a filter for nature, a spot for forced gender and gender ratio (these modify PID under certain conditions, but never in a way that affects nature), and I guess ability if that's even really relevant. As far as the actual generation goes, the nature is always a Mersenne Twister mod 24 (Quirky nature is excluded either by design, or by poor coding) and this should be displayed for every frame. The PID is a bit more complicated, but it would look something like this for genderless Pokemon. (TID = 12345, SID = 54321) From there, if the gender is incorrect, it is changed by adding or subtracting a specific multiple of 50. For correcting Females into Males, the following values are added to the PID depending on gender ratio.25% male = 200, 50% male = 150, 75% male = 100, 87.5% male = 50
For correcting Males into Females, the above values are instead subtracted from the PID depending on gender ratio. Genderless and All male/All Female species are unaffected by this change, as well as Pokemon who already have their intended gender. So the final PID (which will be one of 24 unique values) should be displayed for every frame, and maybe some other info like ability and gender. Offset needs to be displayed, though that'd be as easy as(frame - IRNG min) % 192
Other Stuff There are a few other things I might want that would come later, but the IV/PID Searchers and Generators are definitely the first step. For future reference though here's what else I have in mind.