Ruby and Sapphire RNG Manipulation of Method 1 Pokemon and TID/SID Guide
Since the advent of RNG abuse, Pokemon Emerald has been seen as the easiest RNG to manipulate. The fact that it generates an initial seed of 0 at all times makes abuse as simple as finding a desired spread (either in RNG Reporter, emloop, or by looking at readily compiled tables), calibrating your timer; and carefully hitting the seed you are seeking. However, as we know from life, the easy way is not always the best way. There are several spreads in Emerald that are obviously sub-par. In come Ruby and Sapphire to the rescue!
On their own, Ruby and Sapphire are difficult to abuse. They undergo selection processes similar to that of FireRed and LeafGreen, where you must depend on finding common seeds and searching for desirable spreads that arise from those seeds. Of course, this opens up your options, but it is extremely difficult and therefore is out of the scope of this article. Instead, this article will focus on abusing a trait in Ruby / Sapphire that makes abuse just as easy as in Emerald: they too can hit a constant seed! There is one catch, however.
You may have to dismantle your cartridge.
In order to generate a constant seed, the Ruby and Sapphire cartridges must have a non-functioning internal battery. This can be achieved in two ways. First, your internal battery may, over time, dry up. Due to the game being out for nearly a decade, this is more common than it sounds, but it takes place after many hours of game play. If you don't feel like waiting for this to happen, you will have to resort to dismantling your cartridge and physically removing the battery. If you are too impatient to wait and you have moral qualms about tampering with your game, you may as well stop here.
Once your battery has been incapacitated in whatever manner you saw fit, it now has a permanent starting seed of 5A0. This is what sets Ruby and Sapphire apart from Emerald. With a different starting seed, we can hit completely different spreads than on Emerald. These spreads happen to be much better at lower frame counts than those in Emerald, hence they are more easily obtainable on a cartridge.
One final question that begs for an answer is why would you bother RNGing in Ruby / Sapphire when I can get flawless legendaries in DPP and HeartGold / SoulSilver? One example is the ability to capture Kyogre and Groudon at a lower level than 50, allowing them to be used at level 49 to gain control of the weather in the now defunct VGC 2010 metagame. Although this is such a tiny niche, it is still possible to play matches from this sort of metagame during a throwback tournament. More importantly, however, is that Registeel only learns Seismic Toss in Emerald and XD, and cannot learn it from any 4th Generation tutors. Therefore, the knowledge presented here is advantageous for obtaining a Seismic Toss Registeel with excellent stats.
Here is a list of obtainable Pokemon with amazing IV spreads in Ruby and Sapphire, provided graciously by user Hozu.
Frames to generate from pressing A:
For the actual process of RNGing these Pokemon, follow the steps in the "preparation" and "Calibrating and Soft Resetting" sections of the Emerald RNG Manipulation of Method 1 Pokemon guide written by Arseus.
ID abuse in Ruby and Sapphire is even easier than in the 4th and 5th generations. In fact, it is just as easy as capturing Pokemon. Why is this so? Because it is identical to Method 1 generation! The TID and SID are generated on one frame, from the time the game turns on to roughly after the name selection screen. Thus, at that time, the IDs generated are:
TID: [PID high]
If you haven't already seen it, this makes hitting a particular shiny frame extremely simple. You may remember from X-Act's guide in PID generation that a Pokemon is shiny if, by stacking the following values:
[PID high (upper 13 bits)]
Each column contains an even number of 0's (and, by extension 1's). In more technical terms: [PIDH] ⊕ [PIDL] ⊕ [TID] ⊕ [SID] ≤ 7 (111). In this case, the values for [PID high] and [PID low] are equivalent to [TID] and [SID], respectively. This means that you are guaranteed to find a shiny Pokemon on the exact frame on which your ID values were generated. Therefore, if you find a desirable IV spread in the lists above, just aim for that frame when you start your adventure. When you encounter that Pokemon in-game, it is guaranteed to be shiny. However, due to different methods of IV generation, an optimal spread generated by Method 1 will not match the spread of a Method H wild Pokemon.
Now to the exciting part! Here you will finally learn how to obtain your desired ID numbers. The SID\TID are generated shortly after pressing A after the message "Well, I'll be expecting you later. Come see me in my Pokemon Lab." appears and your character sprite turns white and fades away. The exact moment is shown here:
You will have to calibrate based on what frame you actually hit in order to get the exact time at which to press A. Calibration is extremely simple as shown by the following steps:
Say you don't care about receiving a specific shiny Pokemon but would rather have a cool Trainer ID? This requires a little more work, but it's definitely possible. First, convert your desired TID or SID to hexadecimal. In this case, we will use a Trainer ID of 311, representing the best band in the world, 311. This number in hex representation is 137; pad it with one zero as described in the above calibration process, and we receive 0137. Right click the list of frames and choose Output to Text and save it to something easy to remember like rsids.csv. Next, open it in Microsoft Excel or another program that views CSV files. It may ask you a few questions about delimiting. This is to make sure that the values in the CSV file are in the correct format to arrange the data in cells correctly. Click Next, then Finish, and the table will be generated for you. Click at the top of the PID column (it should be column E), hit Ctrl+F, and type in 0137, then Find All. As we can see, frame 15784 contains the PID 0137E341, whose PID high matches 0137, our desired ID.
Hozu and GoldenBanana provided lists of viable spreads and monster delay frames for each legendary. OmegaDonut, Bond697, Kaphotics, chiizu, ToastPlusOne, and countless other researchers provided the technical aspects that made this guide possible.