sapphire rng manipulation guide

Mountebank
Bug Catcher
Posts: 19
Joined: Tue May 06, 2014 5:32 pm

sapphire rng manipulation guide

Post by Mountebank » Tue Mar 03, 2015 9:08 pm

full mudkip table: https://www.dropbox.com/s/b6dib2g4x1rjw ... udkips.txt

In gen 3, the RNG is seeded to a known value when the game starts or when you soft reset. It advances once per frame and once whenever random() is called. Thus, although the number of RNG advances is larger than the number of frames since soft reset, the difference between these two numbers should be a consistent and measurable value as long as we do the same movement every time.

EDIT: I forgot to mention how the starting seed is calculated. It is based off of the GBA clock, but if the cartridge battery is dead (on VBA you should disable the real-time clock setting), then the starting seed will always be the same value. It is assumed for the rest of this guide that this is indeed the case.

We can get a table of mudkips as follows:
- setup a save in front of mudkip
- for n in [0, 100000]
- soft reset, continue, get to mudkip
- wait n frames
- take mudkip and record its nature and IVs

Let T = number of seconds since soft reset
Let A = number of frames since soft reset = 60 * T
Let I = index of mudkip in table

From this table, we can manipulate desired mudkip stats using the property that the difference between A and I is essentially constant. Results so far for new game -> mudkip:

Time since soft reset: 180.03 sec, 179.97 sec, 197.94 sec
Corresponding A value: 10801.8, 10798.2, 10796.4 (multiply by 60 frames/sec)
Measured I value: 10299, 10303, 10293 (check the IVs/nature and look them up in the table)
Difference: 502.8, 495.2, 503.4

The variance here is probably due to the inaccuracy in the timing, but even then we see that the average measured difference is about 500 frames (more data points would be nice but I'm lazy). We can use this information to convert a desired mudkip IV spread into a timing as follows: T = (I + 500) / 60. It is likely the case that 500 is not the best value, but it is close, and more measurements should help us get a more precise number.

Unfortunately, as we saw, there is a bit of variance in actually getting the right frame consistently, though if we miss we will probably get a frame close to the desired one. However, suppose that instead of having a single desired frame that gives us good stats, we can find a group of frames close to each other that all give good stats. In this case, even if we miss the original target frame, we still have a decent chance of getting good stats anyway.

It seems that if we time from new game -> mudkip instead of continue -> mudkip, it takes about 9500 extra rng advancements, so we must begin our search starting from index 9500. The best window I was able to find without having to wait too much is the 13-frame window from I = [11074, 11086], and we see that the corresponding mudkips are:

11074 | Mild 2/20/1/26/23/5
11075 | Serious 5/26/23/20/10/22
11076 | Jolly 22/20/10/20/6/19
11077 | Lax 19/20/6/12/21/24
11078 | Lonely 24/12/21/22/1/20
11079 | Lonely 20/22/1/30/13/23
11080 | Docile 23/30/13/26/6/23
11081 | Hasty 23/26/6/25/18/17
11082 | Relaxed 17/25/18/27/5/20
11083 | Docile 20/27/5/24/8/9
11084 | Mild 9/24/8/14/18/24
11085 | Docile 24/14/18/25/28/9
11086 | Jolly 9/25/28/29/16/9

The center of this range is I = 11080 which corresponds to T = 3:13, and this corresponds to waiting about 25 seconds extra compared to no manipulation. However, since only in game time matters, we can spend the majority of this wait on the new game screen before the game timer starts and use the remaining time as a buffer to ensure that we can get to the mudkip quickly enough and have a little time to ensure a precise input.

Interestingly enough, Buster's WR run (http://www.twitch.tv/buster_poke/c/5603380) uses this exact strategy and even goes for the same group of frames, and it ended up getting the index 11081 mudkip.
Last edited by Mountebank on Thu Mar 05, 2015 8:38 am, edited 1 time in total.

User avatar
Amoeba
Cooltrainer
Posts: 280
Joined: Thu Apr 24, 2014 12:26 am
Contact:

Re: sapphire rng manipulation guide

Post by Amoeba » Tue Mar 03, 2015 11:43 pm

Holy hell this is impressive.
(I'm presuming this applies to Ruby in the same way?)

Also, for those of us (me) that don't know these things, how do you find this sort of information? Things like the rng advancing every time random is called?
~

Mountebank
Bug Catcher
Posts: 19
Joined: Tue May 06, 2014 5:32 pm

Re: sapphire rng manipulation guide

Post by Mountebank » Wed Mar 04, 2015 12:48 am

Part of it is
Amoeba wrote:Also, for those of us (me) that don't know these things, how do you find this sort of information? Things like the rng advancing every time random is called?
Well for random() specifically, I first tracked down where the random function is in the code. The random function in sapphire looks like this:

Code: Select all

08040E84 4a04 ldr r2, [$08040e98] (=$03004818)    
08040E86 6811 ldr r1, [r2, #0x0]                  
08040E88 4804 ldr r0, [$08040e9c] (=$41c64e6d)    
08040E8A 4348 mul r0, r1                          
08040E8C 4904 ldr r1, [$08040ea0] (=$00006073)    
08040E8E 1840 add r0, r0, r1                      
08040E90 6010 str r0, [r2, #0x0]                  
08040E92 0c00 lsr r0, r0, #0x10                   
08040E94 4770 bx lr                               
So what happens here is that the old rng value is first loaded into r0. r0 is then replaced by (0x41c64e6d * r0 + 0x6073), and this new value is saved and returned. It follows that this replacement of r0 by (0x41c64e6d * r0 + 0x6073) is how the rng is advanced (random() advancing the rng is actually a fairly common pattern).

The next thing to investigate is how often the rng changes, and this can be done by first obtaining a table of rng values from the starting seed and then comparing the values you actually see to those in the table, advancing 1 frame at a time. The address of the rng can be gotten from the code: 0x03004818. I saw that on most frames, the RNG index in the table advanced by 1, though there were a few points where it advanced more than expected.

VBA/Bizhawk Lua scripts / RAM search and VBA-SDL-H memory breakpoints / trace are the main tools I use if you are interested.

User avatar
G_heinz
Pokémon Trainer
Posts: 133
Joined: Tue May 13, 2014 8:27 pm

Re: sapphire rng manipulation guide

Post by G_heinz » Wed Mar 04, 2015 3:01 am

thanks for posting this information in full. i tried talking to buster a bit about his strat but he only provided 3 indexes that he was aiming for and i still wasn't quite clear on what he was timing from. good stuff.

EDIT: also if i'm not mistaken, one of the seeds he routinely aimed for was a bashful, but i don't see it listed here, and its IVs are considerable higher than the other neutral-natured options in this list. it's the kip i had in my recent 2:11. not sure if you know where it's at, but

in any case, i think this will help a lot.

EDIT2: lol somehow missed the link at the top.

thankyouthankyouthankyou

User avatar
spitfire
Bug Catcher
Posts: 24
Joined: Sat Apr 26, 2014 4:52 am

Re: sapphire rng manipulation guide

Post by spitfire » Wed Mar 04, 2015 7:04 am

Just a Question with the seed, is the seed for Mudkip chosen when you select the bag? or when you select yes to confirm you want the Mudkip?

Also massive thank you for this. hopefully this makes Abra reset a lot less painfull.

Exarion
Cooltrainer
Posts: 249
Joined: Thu Jul 17, 2014 10:07 am

Re: sapphire rng manipulation guide

Post by Exarion » Wed Mar 04, 2015 4:06 pm

I looked into some alternative clusters today. None of these seem clearly better than the original, and they require longer waits, but they're worth considering. The bold frame is the one we'd probably want to aim for:

14166 | Lonely 26/11/20/22/10/24
14167 | Hardy 24/22/10/24/31/25
14168 | Naughty 25/24/31/22/16/16
14169 | Bashful 16/22/16/30/24/22
14170 | Naughty 22/30/24/2/5/19
14171 | Impish 19/2/5/29/5/2
14172 | Lax 2/29/5/14/22/22
14173 | Lonely 22/14/22/27/19/1

14463 | Quirky 14/30/0/21/3/30
14464 | Quiet 30/21/3/17/3/24
14465 | Jolly 24/17/3/27/18/30
14466 | Naive 30/27/18/25/5/28
14467 | Lonely 28/25/5/31/2/31
14468 | Naughty 31/31/2/28/11/16
14469 | Naughty 16/28/11/23/13/10

16000 | Naughty 21/17/17/28/1/28
16001 | Gentle 28/28/1/16/30/16
16002 | Lonely 16/16/30/21/26/6
16003 | Quirky 6/21/26/27/16/7
16004 | Hasty 7/27/16/15/27/26
16005 | Hardy 26/15/27/25/20/29
16006 | Quirky 29/25/20/31/9/14
16007 | Lonely 14/31/9/11/20/20
16008 | Rash 20/11/20/26/31/23
16009 | Rash 23/26/31/25/11/12
16010 | Mild 12/25/11/21/22/21

33120 | Lonely 30/31/5/31/12/19
33121 | Naughty 19/31/12/30/25/0
33122 | Docile 0/30/25/30/19/25
33123 | Relaxed 25/30/19/21/1/29
33124 | Naughty 29/21/1/31/0/19
33125 | Naive 19/31/0/14/11/2
Twitch channel: http://www.twitch.tv/exarionu
Pokemon Red speedrunning guide: http://pastebin.com/CkVA5yvJ

Mountebank
Bug Catcher
Posts: 19
Joined: Tue May 06, 2014 5:32 pm

Re: sapphire rng manipulation guide

Post by Mountebank » Wed Mar 04, 2015 5:50 pm

spitfire wrote:Just a Question with the seed, is the seed for Mudkip chosen when you select the bag? or when you select yes to confirm you want the Mudkip?.
Mudkip's stats are generated when you select yes to confirm the mudkip.

User avatar
G_heinz
Pokémon Trainer
Posts: 133
Joined: Tue May 13, 2014 8:27 pm

Re: sapphire rng manipulation guide

Post by G_heinz » Wed Mar 04, 2015 8:44 pm

phuchur's brite boyz

sub-2 in no time Kappa

User avatar
werster
Site Admin
Posts: 110
Joined: Thu Apr 24, 2014 4:38 am

Re: sapphire rng manipulation guide

Post by werster » Wed Mar 04, 2015 9:28 pm

I don't see why you'd skip over better Mudkips just to try and give yourself more leeway. For reference, these are the two I would be deciding between I think (Don't remember Sapphire specifics, but I think Naughty is the better nature?)

9829 | Lonely 6/29/31/25/24/24
9886 | Naughty 24/30/3/30/6/20

It just seems like an exercise in futility to have rng manipulation there, possible, and then not aim for the best stuff, even if it is difficult. Doing it enough times you would get better at all, in the long run I feel like it would be well worth it, especially when it would make resets quicker too (I didn't look for very long and there might be even better ones)

<Obligatory is this only for RS or could similar methods be used in E and FRLG/>

Exarion
Cooltrainer
Posts: 249
Joined: Thu Jul 17, 2014 10:07 am

Re: sapphire rng manipulation guide

Post by Exarion » Wed Mar 04, 2015 11:34 pm

werster wrote:I don't see why you'd skip over better Mudkips just to try and give yourself more leeway. For reference, these are the two I would be deciding between I think (Don't remember Sapphire specifics, but I think Naughty is the better nature?)

9829 | Lonely 6/29/31/25/24/24
9886 | Naughty 24/30/3/30/6/20

It just seems like an exercise in futility to have rng manipulation there, possible, and then not aim for the best stuff, even if it is difficult. Doing it enough times you would get better at all, in the long run I feel like it would be well worth it, especially when it would make resets quicker too (I didn't look for very long and there might be even better ones)

<Obligatory is this only for RS or could similar methods be used in E and FRLG/>
I haven't run Sapphire yet (just Emerald), but I'm guessing it's because you want to give yourself as many chances at a good Abra as possible. Abra, plus other miscellaneous bad RNG like crits, is just as likely to kill a run as having less than godly stats. Spitfire had like 4 god Mudkips (14/11/10) yesterday that died to bad RNG in the first 30 minutes.

If we go for shorter windows, there are several 3-4 frame windows from 10000-20000 that have Mudkips as good as those two. Unless you can consistently hit a single frame at 60fps, you'd probably have more efficient resets, and equally good Mudkips, by resetting every 4-6 minutes rather than every 2:45.
Twitch channel: http://www.twitch.tv/exarionu
Pokemon Red speedrunning guide: http://pastebin.com/CkVA5yvJ

User avatar
Amoeba
Cooltrainer
Posts: 280
Joined: Thu Apr 24, 2014 12:26 am
Contact:

Re: sapphire rng manipulation guide

Post by Amoeba » Thu Mar 05, 2015 1:01 am

Exarion wrote: I haven't run Sapphire yet (just Emerald), but I'm guessing it's because you want to give yourself as many chances at a good Abra as possible. Abra, plus other miscellaneous bad RNG like crits, is just as likely to kill a run as having less than godly stats. Spitfire had like 4 god Mudkips (14/11/10) yesterday that died to bad RNG in the first 30 minutes.
God this. Give yourself as many shots at abra as you can. Godly stats don't save nearly the same time as a godly abra.
~

User avatar
spitfire
Bug Catcher
Posts: 24
Joined: Sat Apr 26, 2014 4:52 am

Re: sapphire rng manipulation guide

Post by spitfire » Thu Mar 05, 2015 1:16 am

I agree with moobs, and after messing around with yesterday i got alot more runs going taking "decent" kips.

Even though most died to abra or before roxanne it was just nice to have more chance, Reseting for GodKips is like reseting for Magic Crit sure its better but it means nothing if you dont find an abra

Mountebank
Bug Catcher
Posts: 19
Joined: Tue May 06, 2014 5:32 pm

Re: sapphire rng manipulation guide

Post by Mountebank » Thu Mar 05, 2015 5:42 am

werster wrote:<Obligatory is this only for RS or could similar methods be used in E and FRLG/>
Sadly, this method only works for RS. Emerald (and FRLG, but I have not checked this yet) seems to set up the initial RNG seed differently. According to TASVideos, the RNG is always seeded with 0 when you soft reset, not taking your clock into account. However, if you select new game, the RNG is seeded again on the naming screen with a hardware-backed entropy counter, and this value is used as the Trainer ID. Supposing that this value really is completely unpreditable, then there are two ways I can think of to set up manipulation, but neither is satisfactory:

- When the game starts, check the trainer ID, and select your mudkip using a timing specific to that ID. To do this, not only would we have to compute a giant lookup table for each one of the 65536 trainer IDs, but we would also have the additional delay of checking the trainer ID and however long we have to wait to hit a good frame.

- Save at the bag and reset, choosing continue instead of new game. This avoids the unpredictable RNG seed, so the table of mudkips will be the same regardless of trainer ID. However, the run will no longer be single segment, and this method also requires the additional delay of save+reset and however long the timing is.

For what it's worth, here is a table of Emerald mudkips for the second strategy (some of the earliest frames may be missing, I accidentally left the dead battery text on). I do not yet have measurements for the difference between real time frames and table index. If the new game RNG seed turns out to not be as unpredictable as it seems, then strategy 1 may become more viable.

Emerald mudkip table: https://www.dropbox.com/s/sjkrtwnpho6tc ... s.txt?dl=0

Mountebank
Bug Catcher
Posts: 19
Joined: Tue May 06, 2014 5:32 pm

Re: sapphire rng manipulation guide

Post by Mountebank » Fri Mar 06, 2015 7:50 am

Possible alternate cluster:

13270 | Lonely 15/31/25/10/22/10
13271 | Bold 10/10/22/23/22/13
13272 | Jolly 13/23/22/22/26/22
13273 | Adamant 22/22/26/13/3/18
13274 | Bashful 18/13/3/26/23/3
13275 | Lax 3/26/23/29/31/26
13276 | Jolly 26/29/31/16/31/13
13277 | Modest 13/16/31/5/12/31
13278 | Bold 31/5/12/20/15/16
13279 | Docile 16/20/15/16/31/13
13280 | Bold 13/16/31/25/13/22
13281 | Careful 22/25/13/31/28/23
13282 | Lax 23/31/28/28/28/25
13283 | Relaxed 25/28/28/11/16/29
13284 | Adamant 29/11/16/9/27/25
13285 | Docile 25/9/27/16/12/24
13286 | Naughty 24/16/12/31/30/7
13287 | Hardy 7/31/30/18/20/9

User avatar
Amoeba
Cooltrainer
Posts: 280
Joined: Thu Apr 24, 2014 12:26 am
Contact:

Re: sapphire rng manipulation guide

Post by Amoeba » Fri Mar 06, 2015 2:43 pm

Hmm, a lot of those stats are unrunable, despite the decent looking IVs.

13270 | Lonely 15/31/25/10/22/10 Sp.atk and spe are dodgy but the great attack more than makes up.
13271 | Bold 10/10/22/23/22/13 Unrunable
13272 | Jolly 13/23/22/22/26/22 Unrunable
13273 | Adamant 22/22/26/13/3/18 Unrunable
13274 | Bashful 18/13/3/26/23/3 Poor atk and spe
13275 | Lax 3/26/23/29/31/26 Nice, attack is a touch short of great though.
13276 | Jolly 26/29/31/16/31/13 Unrunable
13277 | Modest 13/16/31/5/12/31 Unrunable
13278 | Bold 31/5/12/20/15/16 Unrunable
13279 | Docile 16/20/15/16/31/13 Passable, far from great
13280 | Bold 13/16/31/25/13/22 Unrunable
13281 | Careful 22/25/13/31/28/23 Unrunable
13282 | Lax 23/31/28/28/28/25 Really nice
13283 | Relaxed 25/28/28/11/16/29 Poor sp.atk and mediocre speed
13284 | Adamant 29/11/16/9/27/25 Unrunable
13285 | Docile 25/9/27/16/12/24 Unrunable
13286 | Naughty 24/16/12/31/30/7 Very nice, speed is a touch low
13287 | Hardy 7/31/30/18/20/9 Nice, speed is low, sp.atk isn't great.

There are a handful of good stats here, but they're not that close, and, barring 13282 none are anything special.

(Most of this is based off of emerald stats, and what little r/s I know. Saph runners please correct me if I'm too strict on these)

EDIT: Actually I'm probably being hasty here (no pun I swear), the latter half of the list is quite a nice cluster, maybe aiming later would be decent.
~

User avatar
G_heinz
Pokémon Trainer
Posts: 133
Joined: Tue May 13, 2014 8:27 pm

Re: sapphire rng manipulation guide

Post by G_heinz » Fri Mar 06, 2015 9:56 pm

after running a lonely w 7IV speed last night (11065 | Lonely 27/16/23/3/30/7 to be exact) and dying to archie, i've concluded bad speed is much worse than we may have previously given it credit for (at least on current strats, which tbh, don't merit changing just to accommodate bad speed). i'm not really keen on that cluster because it seems there are a lot of islands, i.e. several strictly unrunnable kips surrounding the one decent one, with only a couple (e.g. 13275 | Lax 3/26/23/29/31/26, 13282 | Lax 23/31/28/28/28/25) that are really good.

my first reaction towards werster's point is skepticism, being that i think the main benefit of this manipulation is to make resets easier, but at the same time his point is well made that if you're going to manipulate at all, you may as well give yourself the best chance of completing a run. unfortunately, amazing stats in this game really don't matter as much as we might like to think, but at the very least, things like <~10IV speed are gonna be really problematic for certain fights, primarily archie 1. however, 13286 | Naughty 24/16/12/31/30/7 tickles my fancy, if only due to its 30IV spdef, which would be invaluable vs. archie despite the -spdef nature.

EDIT: i would also comment that i think we really need to focus on getting good atk. sounds pretty obvious, but there are a few kips in the cluster from the OP that only have like 22IV atk, and last night i literally failed to ohko a carvanha in the museum with mud shot (i pooped myself a lil). 27IV+ is not necessarily required, though ideal, but i think at least 24-25IV+ would be preferable. i dunno. i think a lot of this is going to come down to preference, and the shit part is you could easily sub-2:10 with mediocre stats if given the right ranges, but at the same time, the likelihood of dying to something BibleCry-worthy (think missing the range on rival 3 which spitfire doesn't think exists Kappa ) is just not worth it if we really have this degree of control over our stats.

Exarion
Cooltrainer
Posts: 249
Joined: Thu Jul 17, 2014 10:07 am

Re: sapphire rng manipulation guide

Post by Exarion » Thu Mar 26, 2015 1:32 am

Thoughts on this cluster? See pastebin below for notes on each Mudkip.

12779 | Lax 4/31/23/24/25/30
12780 | Gentle 30/24/25/21/22/22
12781 | Lonely 22/21/22/9/26/30
12782 | Jolly 30/9/26/29/0/13
12783 | Hardy 13/29/0/30/30/19
12784 | Hasty 19/30/30/25/10/12‏

http://pastebin.com/Cgunh0Hz

Accompanying route: http://pastebin.com/wwViZ4gx
Twitch channel: http://www.twitch.tv/exarionu
Pokemon Red speedrunning guide: http://pastebin.com/CkVA5yvJ

User avatar
G_heinz
Pokémon Trainer
Posts: 133
Joined: Tue May 13, 2014 8:27 pm

Re: sapphire rng manipulation guide

Post by G_heinz » Thu Mar 26, 2015 7:49 pm

quite the comprehensive analysis. i like it. the gentle in particular due to new tnl strats.

Exarion
Cooltrainer
Posts: 249
Joined: Thu Jul 17, 2014 10:07 am

Re: sapphire rng manipulation guide

Post by Exarion » Thu Mar 26, 2015 8:37 pm

Yeah, I'm really liking the Kips, but hitting that window is tougher than I thought because of the variance during the opening cutscenes. If we can figure out what causes that variance, we'll be in really good shape.
Twitch channel: http://www.twitch.tv/exarionu
Pokemon Red speedrunning guide: http://pastebin.com/CkVA5yvJ

User avatar
G_heinz
Pokémon Trainer
Posts: 133
Joined: Tue May 13, 2014 8:27 pm

Re: sapphire rng manipulation guide

Post by G_heinz » Thu Mar 26, 2015 8:55 pm

to what variance are you referring? are you saying it's harder to hit kips farther out for some reason? i seem to have experienced something like that myself.

Exarion
Cooltrainer
Posts: 249
Joined: Thu Jul 17, 2014 10:07 am

Re: sapphire rng manipulation guide

Post by Exarion » Thu Mar 26, 2015 9:01 pm

G_heinz wrote:to what variance are you referring? are you saying it's harder to hit kips farther out for some reason? i seem to have experienced something like that myself.
No, Mountebank told me there's a variance of 10 frames because the frames don't advance at a consistent rate during the opening cutscenes (so from when you select New Game until you're on the menu to choose your starter). The frames do advance consistently on the New Game and starter menus. Apparently random things like NPC movement could affect the frames, in addition to your own movement, how long you spend in a house vs. the field, etc.
Twitch channel: http://www.twitch.tv/exarionu
Pokemon Red speedrunning guide: http://pastebin.com/CkVA5yvJ

User avatar
G_heinz
Pokémon Trainer
Posts: 133
Joined: Tue May 13, 2014 8:27 pm

Re: sapphire rng manipulation guide

Post by G_heinz » Fri Mar 27, 2015 12:45 am

wow, interesting. certainly the variance affects all clusters equally though?

User avatar
zackcat
Known Troller
Posts: 15
Joined: Thu Apr 24, 2014 3:09 am

Re: sapphire rng manipulation guide

Post by zackcat » Fri Mar 27, 2015 10:47 pm

Exarion is just misleading you. Don't fall for it.
Image
Image

MKDasher
Schoolkid
Posts: 41
Joined: Fri May 02, 2014 5:31 pm

Re: sapphire rng manipulation guide

Post by MKDasher » Tue Mar 31, 2015 10:37 am

Just found this topic today. Nice guide Mountebank.

I tried to do something like this in the past as well, but I never aimed to search for a range, which is why I failed. (I was trying to just get an specific ID only, which would require tons of resets, due to the RNG advancing at 60fps.)
Mountebank wrote: The next thing to investigate is how often the rng changes, and this can be done by first obtaining a table of rng values from the starting seed and then comparing the values you actually see to those in the table, advancing 1 frame at a time..
I had measured all that in the past, but I'm not sure if I noted that down somewhere.
The game runs at 60 fps, and the RNG advances once each frame.

It's not neccesary to obtain a table of rng values. The RNG changes by this formula:
[(0x41C64E6D * Seed) + 0x6073]

There's some things that can make the RNG advance more than once in one frame. For example, each time an NPC moves, the RNG would advance one extra time (or 2 extra, I can't remember right now). This is one of the reasons why the method is a bit inconsistent and works better for Mudkip ranges.

Also when your Trainer ID is chosen the RNG advances about 40 times in 1 frame. Again I don't remember exactly the numuber but I'm just talking from what I remember. I could go back and recheck again.

I used RAM Watch and lua scripting mainly to find all this. It's really helpful to have a visual guide while analysing RNG. I can share some luas with whoever wants them.
Mountebank wrote:Sadly, this method only works for RS. Emerald (and FRLG, but I have not checked this yet) seems to set up the initial RNG seed differently.
Exactly, for both Emerald and FRLG it works the same way. Actually for FRLG it's even worse.

Emerald and FRLG has some weird way to seed the RNG, by using the 256Hz clock. Also, the clock is sensitive to your inputs, so any single input that you do before getting the seed matters. For FRLG it's even worse because that method is used twice. (Once for the Wild encounter RNG, and one for the Trainer ID). In both cases, the seed used for the trainer ID is the one that is used later to check the starter stats.

So you could have some external tool that searchs for decent starters by inserting your ID, but I'm not sure how good that method would work.

User avatar
Amoeba
Cooltrainer
Posts: 280
Joined: Thu Apr 24, 2014 12:26 am
Contact:

Re: sapphire rng manipulation guide

Post by Amoeba » Tue Mar 31, 2015 6:08 pm

MKDasher wrote:I can share some luas with whoever wants them.
I'd appreciate this, especially the RAM Watch one.
~

Locked

Return to “Pokémon Ruby/Sapphire”

Who is online

Users browsing this forum: No registered users and 2 guests