RNG Manipulation in FireRed/LeafGreen: Wild Pokémon Supported in RNG Reporter 9.93

Status
Not open for further replies.

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Sweet Breakdown there! :D

It's just a suspicion at the moment, but i seriously believe that small changes DON'T have a drastic effect on the seed. Reason being, if you look back at those seeds I got earlier (for example c05 and c04) the difference between the two is 1. It's likely (in my opinion) that there was like only one button press, or 1/60th of a second difference between the two, and it just moved the seed forward 1.
I don't mean small changes, I'm thinking drastic like doubling the time spent in one interval, or something along those lines. Is there any way to know what the "tap" rate of your turbo button is, and how much you can vary it?
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
More News

This info isn't as earth-shattering as mattj's recent successes, but I have managed to extrapolate some information on when exactly the RNG starts running after it is seeded:
The RNG Clock starts running when you press A or Start on "Press Start."
In turn, I also verified something else:
The Cerulean Cave, specifically where Mewtwo lies, is not a noisy area. This might be known to people but I read the entire thread and cannot find any verification of this. Here are my experiments and resulting notes.

First, I soft-reset after button-mashing through the opening sequence at a pretty consistent rate (I consider myself an expert at hitting consistent seeds in Diamond/Plat :toast: ). I only did this twice, because I realized that I wasn't being too consistent with the timing for the actual Mewtwo encounter.

50abe8d3 c9fe6054 (Method 3) Time 1:31.46 F5488 Starting seed DE5A
abf03bb1 daf1835f (Method 1) Time 0:22.68 F1361 Starting seed 9e21**
______________________________________________________________________

5d49378 7055c741 (Method 1) Time 0:26.75 (20.46) Starting seed 9e14**
1c2ab7f9 474185d4 (Method 2) Stop here, as method 2 is irrelevant
I found it interesting that I hit a Method 3 spread, as this is only the second time I had ever done this. Notice also that through my careless button mashing, I managed to hit two very close seeds. Next, I set a fixed time, 20.00 seconds, from when I press Continue until when I activate the Mewtwo encounter. Again, I used my usual button mashing, and although it wasn't the aim of this experiment, I hit the same seed, but not frame, twice!
Experiment 1:
Button Presses: Don't care
"continue" to encounter: 20.00 seconds

trial, nature, HP, Atk, Def, SpA, SpD, Spe, seed, pid, method, starting seed, frame, time
1, Rash, 29, 25, 31, 6, 27, 24, 8d52c79b, 729b21f2, 1, 9e0b, 1745, 29.08
2, Gentle, 5, 25, 5, 26, 10, 11, 911e1bd, 7739e493, 1, 9e0b, 1427, 23.78
3, Adamant 28, 25, 30, 22, 29, 15, 2ae1c3ad, 3d47508d, 1, 0c1e, 1542, 25.70

side note: hit 9e0b Twice!!
Best and quickest spread for mewtwo: Adamant, 31/31/23/6/30/31
Timid, 29/19/25/30/25/29
Hasty, 31/29/30/30/31/23
Notice that the three times in bold are way different. I assumed that the reason for this would be that I spent different times on the actual continue screen each trial. So to refine my method, I decided to start a 25.00 second time from the "Press Start" Screen. Take a look at this:
Experiment 2:
Button Presses: Don't Care (usual speed)
"Press Start" to Encounter: 25:00 seconds
trial, nature, HP, Atk, Def, SpA, SpD, Spe, seed, pid, method, start, frame, time, fpsn
1, Adamant, 31, 19, 19, 28, 14, 7, a48ce2ac, f07afa15, 1, f494, 1433, 23.88,

62.81
2, Relaxed, 8, 5, 11, 25, 7, 14, 65ef806, 277100a5, 1, bfc7, 1434, 23.90,

62.76
3, Rash, 6, 12, 12, 10, 6, 28, a5a7c2a9, 7581d73, 1, 90c8, 1440, 24.00,

63.50

4, Timid, 18, 22, 3, 21, 7, 4, 7923e1c3, d26ba2e2, 1, abb7, 1436, 23.95,

62.63
5, Naughty, 21, 4, 25, 22, 26, 23, 4b8d2bfe, 2598b2f7, 1, b9ed, 1435, 23.93,

62.68
fpsn is the clock speed for my particular cartridge, found by 60*25.00/Time. This makes sense, as it is widely established that clock time varies by game to game. This also establishes that Mewtwo is in a quiet area.

I know this information is a little bit less glorious than mattj's recent info, but I feel it clears the air a little, eliminating yet another important factor. The time between Press Start and Continue has nothing to do with seed generation! This should save some time when testing different intervals.
 
I was just reading through and I was wondering if you new when the seed is generated yet, is it after pressing continue or later on?
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
My analysis shows that the rng doesn't start until you hit start or A on the press start screen. This probably means that the seed is created at that same moment, but it could also be before that. So to answer your question, no, the seed is not created after the continue screen.
 

mattj

blatant Nintendo fanboy
That's one sik finding Nix. Let me see if I understand you correctly. When it comes to SEEDING (not frame advancmenents) the time between Press Start and Continue is what determines the seed? Or did I miss something?!

Oh, and my last test before moving on to Mewtwo (just c/p'd, too lazy to CSV lolz):

Does letting the Review play out affect the frame/seed/anything?
Code:
Attempt #) (Nature): /IVs/ ,  Starting Seed,   Frame
1) (Modest): 8 / 9 / 27 / 19 -  20 / 22 / 8 ,  c285, 6779
2)  (Serious): 7 / 22 / 0 / 31 / 14 / 21 ,  c04, 6784
3) (Quirky): 18 / 5 / 3 / 3 / 8 / 27 ,  c291, 6767
4)  (Rash): 4 / 31 / 19 / 9 / 13 / 29 ,  c04, 6782
5) (Gentle): 15 / 10 / 21 / 9 / 8 / 16 ,  c297, 6776
6)  (Calm): 24 / 18 / 0 / 28 / 14 / 13 ,  ea53, 6492 (waay early encounter. >_<)
7)  (Jolly): 2 / 22 / 14 / 5 / 19 / 0 ,  c05, 6785
8) (Docile): 9 / 13 / 20 / 23 / 25 / 31 ,  bfd, 6774
9) (Impish): 0 / 26 / 13 / 2 / 27 / 30 ,  c298, 6775
10) (Serious): 4 / 13 / 20 / 11 / 3 / 9 ,  c297, 6779
Couple things...
1)
I ran the starting seeds for #s 5 & 10 through RNG reporter to get a more accurate frame, and got 6777 for #5 and 6780 for #10. Somebody before had mentioned it skipping odd or even frames. I assume this means it's not doing it here. :P
2) They're all in the 6775ish range, so we know the frames are running on your seed during the Review at the same rate they do inside the Powerplant.


Okay. Moving on to Mewtwo...*thankyousweetjesus*
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
That's one sik finding Nix. Let me see if I understand you correctly. When it comes to SEEDING (not frame advancmenents) the time between Press Start and Continue is what determines the seed? Or did I miss something?!
haha, sorry for the confusing wordage. No, the seed is planted, at the very latest, by the time you hit Press Start, and the RNG runs from there like it does in Emerald. Hence anything that happens after Press Start has nothing to do with the seed. What needs to be found is whether the seed is finished being generated the moment on which you Press Start, or if it's even before the Press Start screen altogether. Hopefully the latter, as it would eliminate yet another variable, yet I doubt this is the case... seems too "easy" to me.

I guess how you would go about this is running your turbo until it presses A on the Game Freak star animation, then once you turn it off, wait a predetermined amount of time, say 30.00 seconds, until you hit start or A on Press Start. Then find the seed the normal way. Try it again without the 30.00 second wait and see if the seed is the same as, or even close to, the previous one. The trick is stopping the turbo right when the star animation is pressed and starting a stopwatch at the same time. I think it's worth a couple shots. Tell me what you think.

Does letting the Review play out affect the frame/seed/anything?
It has no effect on the seed as it is already rolling, and thank God for that, because it's quite erratic in its length, at least as far as I noticed. As far as affecting the frame, I highly doubt it, as I mashed through it at unknown speeds and still got spreads within a 7 frame range.

Okay. Moving on to Mewtwo...*thankyousweetjesus*
does this imply that you now have the zapdos spread you were aiming for?? and what about that voltorb?
 

mattj

blatant Nintendo fanboy
haha, sorry for the confusing wordage. No, the seed is planted, at the very latest, by the time you hit Press Start, and the RNG runs from there like it does in Emerald. Hence anything that happens after Press Start has nothing to do with the seed. What needs to be found is whether the seed is finished being generated the moment on which you Press Start, or if it's even before the Press Start screen altogether. Hopefully the latter, as it would eliminate yet another variable, yet I doubt this is the case... seems too "easy" to me.

I guess how you would go about this is running your turbo until it presses A on the Game Freak star animation, then once you turn it off, wait a predetermined amount of time, say 30.00 seconds, until you hit start or A on Press Start. Then find the seed the normal way. Try it again without the 30.00 second wait and see if the seed is the same as, or even close to, the previous one. The trick is stopping the turbo right when the star animation is pressed and starting a stopwatch at the same time. I think it's worth a couple shots. Tell me what you think.


It has no effect on the seed as it is already rolling, and thank God for that, because it's quite erratic in its length, at least as far as I noticed. As far as affecting the frame, I highly doubt it, as I mashed through it at unknown speeds and still got spreads within a 7 frame range.

does this imply that you now have the zapdos spread you were aiming for?? and what about that voltorb?
Oh ha, about that, we're gonna have dates and locations for the VGCs very very soon now, (maybe even this week), and I already have a good Zapdos, and Voltorb, so.... yeah I'm just moving onto Mewtwo. :X

To be honest, seeding at the "Press Start" scene doesn't sound right to me, cuz I'm so used to seeding at "Continue" in the 4th Gen games, but your results look solid. Thanks for finding that out!

So, I assume the way to change the seed would be to vary the time between SR and "Press Start"?
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Yeah that is what I thought, seems weird to me too, but I can't deny what I found. Also, it could be either the difference between sr and nidorengar, between nidorengar and venuzard, or sr and venuzard, or any combo of each. Maybe I can do some work documenting times and seeds and make a graph. If its linear, finding an equation for the graph would be trivial. This also seems too easy, but the fact that we have gotten seeds close to eachother might indicate a simple, and not some random ass relation
between these variables.
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
well it looks like the seed generation is oddly erratic, yet I am hitting some consistent seeds. This sets us back a bit I think, but here it goes.

Test: Time between SR and Press Start kept constant. No button presses during this time.
Time = 35.00 Seconds = 2100 (emloop)

Trial,Seed, Nature, IVs, PID, Starting Seed, Frame
1, 394d4907, Serious, 1/1/16/25/3/23, 6c8d3492, 9627, 609
2, 82a0929, Calm, 8/31/27/31/26/28, 6a30c766, 5565, 597
3, c2ff4974, Mild, 5/4/2/22/22/13, d9cb12cb, 5567, 816
4, 895459e9, Rash, 0/31/16/18/24/27, 266335f3, 7bb3, 615
5, 6850ebee, quiet, 0/1/13/29/3/15, 938fa6b, 1061, 584
6a, 94f7b02e, relaxed, 30/28/22/14/15/2, 9168d6b8, (method 3)*
6b, 2253d770, ", " , a25b3957, 9627, 588
7, 1539c670, rash, 20/21/9/20/2/24, d2708eaf, 9626, 626
8a, ab3408fe, brave, 15/20/14/15/19/13, f8dc3259, (method 3)*
8b, b2599899, " " , 78dc1bfa, 9627, 1139
9, a0541dc6, quirky, 21/11/31/5/22/16, 29333207, 1b0f, 1138
10, 61979bad, lax, 14/3/11/24/23/11, c1cd13ca, b7f6, 1134
11, 1bf9b890, naughty, 26/30/6/25/8/21, 87114eef, 962d, 1110
12, f915f336, modest, 15/23/19/24/1/17, 1bf99037, 962d, 1108
I don't know why I keep documenting Method 3 Spreads, but that's besides the point. Colored seeds are within close range of each other, while underlined indicates exact seeds. Let's analyze this closer:

6/12 (50%) of my spreads lie between 9626 and 962d
2/12 (16.7%) lie between 5565 and 5567.
4/12 (33.3%) are way off, not coming close to any of the other spreads.

This is the weird part... although I'm "choosing" the seed at a relatively close time, i'm getting way off answers, right? Well, two ranges as close as these do not resemble a random ass pattern, so it seems that a seed formula shouldn't be overly complex.

I don't know what causes this anomaly, but 50% is a decent number (I obviously didn't do enough trials, but it takes hours as those of you doing this realize). Note again that I don't press anything until the 35:00 mark, then i let the RNG do its thing. Again, I was not aiming for identical spreads, just identical seeds. It looks like it takes exactly 30.00 from SR until you can press A/start on venuzard, so next time I will try that and see what seeds I get most often. It's time for bed now, but I hope to hear back from anyone. I still heartily believe that the seed is chosen at Venuzard, but this is where the truly hard work starts.
 

mattj

blatant Nintendo fanboy
Hi, I was on the emloop site and looking at the links at the bottom and found this page which contains some leaf green stuff on it and was wondering if it'd be any use to you, it's in japanese though so you'd need a translator

http://d.hatena.ne.jp/metagross-arm...%DD%A5%B1%A5%E2%A5%F3%2D%A4%BD%A4%CE%C2%BE%5D

Lol. It sounds exactly like what Steve was suggesting. Your seed is determined by initial conditions, find a seed you can hit, pick a target frame, hope for the best.
 
About the noisy areas:

Most of them can be turned to normal ones by saving there and reloading the game.
It also seems that sometime if you visit a noisy area and go to a normal the frames will remain noisy.

The earliest possible inititial seed is 3d3 or 3E1 and is stored after generation on 0x2020000.
I can confirm that the seed is generated at the "Press Start" screen.

Edit:
Knowing where the seed is stored, allowed me to check faster which the first initial seeds were.
I used autofire to start the game as fast as possible and increased one frame after finding out all seeds for that specific frame.

Frame : Initial Seed

[after some frames in the black screen after copyright]
1 : 3D3 or 3E1
2 : 3E1 or 3E3
3 : 3E1 or 3E2
4 : 3D2 or 3DD
5 : 3E2 or 3DD
6 : 3E2 or 3E8
7 : 3DD or 3D3
8 : 3E2 or 3D3
9 : 3D8 or 3E2
10 : 3D8 or 3DE
11 : 3D9 or 3DE
12 : 3DF or 3DE
13 : 3E2 or 3DE
[...] skipped those frames
33 : 3DE or 3D8
34 : 3DE or 3D9
35 : 3DC or 3D9
36 : 3DC or 3DD
37 : 3DC or 3DD
38 : 3DC or 3D8
39 : 3DC or 3E3
40 : 3DC or 3E3
41 : 3DB or 3E3
42 : 3DB or 3E6
43 : 3D9 or 3E6
44 : 3D9 or 3DA
[screen turns blue]
45 : 3E1 or 3DA
46 : 3E1 or 3DC
47 : 3D7 or 3DC
48 : 3D7 or 3E9
49 :5402 or 3E9
50 :5B39 or 5402
[screen turned blue]
51 :5B39 or 2BD7
[star gets on the screen]
52 :3B9B or 2BD7
53 :3B9B or 2C9E
54 :3D3E or 2CA8
55 :3D46 or 2FA9
56 :3CFE or 2FA9
57 :3CFE or 2A7B
58 :3B75 or 2A7B
59 :3B6E or 2DDB
60 :3E8D or 2DDB
You'll notice: On the same second you can get many seeds :-/
I think somewone should trace the routine with a debugger...
 

mattj

blatant Nintendo fanboy
Amazing Info
You are so awesome bro! Thanks! :D Saved in front of Mewtwo now trying 3 different methods of Soft Resetting (GBA to metronome, GBA to song, GBA Player+Turbo Controller). Getting some bleh results though. :/

[edit]
Oh and using that awesome info that flovv found above, someone with some math/programing skills *coughcoughmisdreavuscough* should really take a look at it and see if they can't get a lil equation figured out for it. He's got Frame 1=Seed A F2 = Seed B, etc, etc...

Oh, and my results were'nt that bleh at all! I'm actually getting the exact same seeds as I did on that last big info dump I did, except that the frames are slightly higher (most likely because of a different Review than before). I thought there was something in your save file giving me different seeds, but it was probably just different frames because of a different Review with a different length.

[edit 2]
Okay here's what I did:
Saved directly in front of Mewtwo in Unknown Dungeon on my Fire Red Cart playing it on my Hot Pink See-through GBA (lolz). Gonna use the Metronome in Magix Recording Software to help me tap to a steady beat. I'll start with the metronome set on 160 beats per minute. I'll hold down Start+Select+A+B and let go at beat #17 (the same beat I usually begin playing on when I record music) and start tapping A on beat # 33. I'll tap straight through till I encounter Mewtwo. I'll collect some SR's then run their info through Metalkid's IV Calc, RNG Reporter, and Steve's Program to get their Nature, IVs, Starting Seed, and Frame (irrelevant at the moment). If If I get at least one Consistent and Usable starting Seed, I'll then find a target frame and start pausing for it, (hopefully) using Pikatimer to help me encounter at the right moment. If not, I'll adjust my beats per minute and try to get new consistent seeds with new spreads, etc, etc...

Soft Resets:
160 BPM (2/4 Time, I HATE 4/4), SR (let off ABStSl) @B#17, Start Tapping A @B#33, Tap Straight Into Mewtwo:
Code:
[B]Att. #) (Nature) / IVs / , Starting Seed, Frame[/B]
1)  (Jolly): 17 / 30 / 21 / 27 / 11 / 24, 966a, 596
2)  (Naughty): 2 / 18 / 7 / 16 / 29 / 25, 9a41, 619
3)  (Gentle): 4 / 2 / 19 / 15 / 14 / 26, 4fbb, 619
4)  (Lax): 10 / 8 / 15 / 12 / 18 / 30, 4d4d, 595
5)  (Serious): 24 / 23 / 28 / 24 / 10 / 31, 30e8, 594  (Took a Break)
6)  (Docile): 19 / 11 / 5 / 13 / 22 / 17, 8935, 596
7)  (Naughty): 24 / 20 / 21 / 19 / 28 / 22, 9ce9, 597
8)  (Impish): 9 / 24 / 28 / 22 / 21 / 10, 9dca, 619
9)  (Brave): 15 / 1 / 27 / 23 / 4 / 17, 2793, 597
10)  (Bold): 0 / 13 / 19 / 6 / 21 / 18, 9a09, 619  (Took another Break)
11)  (Docile): 30 / 30 / 21 / 2 / 14 / 7, 299e, 599
12)  (Naïve): 24 / 31 / 30 / 26 / 24 / 16, dc13, 597
13)  (Hasty): 2 / 1 / 31 / 9 / 28 / 10, 1d03, 619
14)  (Timid): 17 / 5 / 20 / 11 / 22 / 9, 5034, 617
15)  (Hasty): 12 / 11 / 29 / 26 / 30 / 7, e6b1, 620
Inconsistent Seeds Much?? Yeah gonna try something different here. The Frames really were'nt all that bad, but I'm not at all happy with those Starting Seeds. I RNG ALL of my pokes tapping to the beat of this one song ("Marty" by Five Iron Frenzy). It helps me to very consistent Delays in DPPtHGSS, so.... why not try it here. :/ It might work better because I've done literally every single RNG tapping to this beat for the last... 3 months or more? I'd REEEEEALLY like to use Pikatimer to hit my frames cuz the little beeps at then end help me out a lot.

Hold ABStSl, Start "Marty", Let off on beginning of Second Loop (5th measure?), Start Tapping on beginning of 3rd Loop (intro of Horns, 9th measure?)
Code:
1)  (Impish): 29 / 3 / 29 / 7 / 8 / 10, 2a07, 571
2)  (Gentle): 7 / 5 / 5 / 1 / 7 / 25, aad2, 573
3)  (Hardy): 11 / 6 / 8 / 1 / 15 / 20, c9e1, 574
4)  (Docile): 18 / 8 / 19 / 1 / 16 / 2, d28d, 574
5)  (Docile): 14 / 15 / 12 / 15 / 5 / 18, d287, 573
6)  (Sassy): 27 / 5 / 20 / 24 / 17 / 31, d8a5, 575
7)  (Hardy): 22 / 12 / 18 / 5 / 20 / 27, d8a5, 575
8)  (Bold): 22 / 18 / 12 / 19 / 4 / 19, ae9f, 574
9)  (Sassy): 15 / 0 / 30 / 7 / 23 - 24 / 22, c7a6, 574
10)  (Hardy): 6 / 20 / 7 / 25 / 8 / 22, b590, 573
The two methods above seemed to give unacceptably inconsistent results, so I decided to try the old GBA Player + Turbo Controler trick again just for reference:
Code:
1) (Rash): 13 / 20 / 14 / 25 / 22 / 20, c0e, 567
2) (Modest): 29 / 8 / 23 / 12 / 27 / 5, c28e, 567
3) (Lax): 11 / 6 / 11 / 8 / 0 / 30, c05, 568
4) (Rash): 26 / 25 / 21 / 22 / 28 / 24, c291, 564
5) (Naughty): 3 / 29 / 9 / 29 / 14 / 17, c04, 568
6) (Hardy): 15 / 10 / 7 / 24 / 15 / 28, c285, 567
7) (Careful): 27 / 24 / 19 / 11 / 17 / 3, c298, 564
8) (Lax): 21 / 28 / 8 / 9 / 26 / 20, c05, 564
9) (Lax): 3 / 26 / 17 / 16 / 4 / 30, c28f, 564
10) (Brave): 25 / 28 / 22 / 6 / 14 / 23, c04, 564
11) (Lonely): 7 / 14 / 0 / 25 / 23 / 31, 9e0a, 564
12) (Lax): 9 / 21 / 5 / 13 / 0 / 26, bfe, 565
13) (Sassy): 19 / 18 / 7 / 29 / 9 / 3, c04, 567
14) (Careful): 27 / 24 / 19 / 11 / 17 / 3, c298, 564 (replica of #7)
15) (Jolly): 10 / 30 / 28 / 5 / 2 / 18, bfe, 567
16) (Rash): 26 / 25 / 21 / 22 / 28 / 24, c291, 564 (replica of #4)
17) (Brave): 18 / 5 / 2 / 25 / 6 / 4, bfe, 568
18) (Brave): 25 / 28 / 22 / 6 / 14 / 23, c04, 564 (replica of #10)
19) (Impish): 1 / 14 / 24 / 26 / 29 / 19, c28e, 565
20) (Rash): 23 / 6 / 14 / 22 / 19 / 26, c04, 565
Wow! Didn't expect that?! It's basically RIGHT ON TRACK with the results of my last big soft reset right in front of Zapdos, but with slightly higher frames due to a noticeably longer Review, (I noticed it lagged in certain spots for some unknown reason.

1)
This means that YOU, YES YOU can hit these exact same seeds, probably with the exact same consistency if you use the same stuff I am (GBA Player, GS Turbo Controler).
2) Seems like your save file has NO impact on what seeds you hit. It's all about when you seed, and probably button presses too (will be found out eventually).

Since this last "Turbo Soft Reset" matched up so VERY well with my last "Turbo Soft Reset" I decided to merge the two to find my most common seeds (I feel confident about this). Here's what I got:
Code:
c04  -  13/70
c05  -  10/70
bfe  -  10/70
c291  -  7/70
c298  -  5/70
c28e  -  5/70
c0e  -  4/70
ea53 or 9a9c  -  3/70
c297  -  3/70
c09  -  2/70
9e0a  -  2/70
c285  -  2/70
bfd  -  1/70
c07  -  1/70
The ONLY significant change was that one new seed was recorded (though it's right in line with the others). Everything else was right in line. I'll use this data to go find a good target frame now for Mewtwo and start timing it...

[edit 3]
Target Spreads:
TARGET SPREADS:
Code:
c04  Rash 25/26/27/28/28/31  F 193044 (53:37:40)
c04  Hasty 27/29/31/25/31/31 F 634779 (176:19:??)

c05  Lonely 28/29/25/26/28/31 F 79162 (21:59:36)

c291  Naughty 30/31/27/25/29/31 F 370536 (102:55:??)
c291  Rash 27/26/29/31/29/31 F492644 (136:50:??)
c291 Rash 26/30/31/31/30/30 F78010 (21:40:16)
While these are some decent spreads, I'm actually gonna go ahead and set my Turbo on the slowest setting and see if I can get some DIFFERENT consistent starting seeds maybe with some even BETTER spreads! :D

Now off to Radioshack/Walmart to try to find some kind of reliable timer...
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
mattj, is SR'ing the same with the gamecube controller as it is on the gba? Also, when do you start the turbo? Is it when you press A on the SR? I'm thinking of getting the gba player and turbo controller, but it seems a little steep in price just to have a non-hacked Selfdestruct Mewtwo. Might be worth it though, as I don't hack anything, and I don't consider RNG abuse cheating, or I wouldn't be helping in this research ;)

flovv, this is some amazing info. It wouldn't seem too difficult to make some data point graphs in Microsoft Excel or MATLAB, both of which I have. I would do two sets of data: the lower value, and the higher value, for each "frame."

Some questions for you; if you don't know, it's fine, but just curious:

Question #1: If you get the higher value for a seed, are you guaranteed to get the higher value for the rest of the frames for that start-up, and vice versa? It'd be easy to do trend lines for the higher and lower values, if this is the case. I would do it tonight, but I'm going to a LA Kings Star Wars Night Hockey game and I won't be back until late =)

Question #2: This sort of goes along with #1, but if I get the higher seed, is my cartridge guaranteed to only hit the higher seeds for every frame, every time I start up the game?

Question #3: If neither of the above is the case, does each frame have 50% probability for either value, or does one have higher probability over the other?

Again, if you don't know the answers, that's fine, but if we get lucky, it would probably be much easier to get a solid formula for a seed! Awesome findings.
 
Question #1: If you get the higher value for a seed, are you guaranteed to get the higher value for the rest of the frames for that start-up, and vice versa? It'd be easy to do trend lines for the higher and lower values, if this is the case. I would do it tonight, but I'm going to a LA Kings Star Wars Night Hockey game and I won't be back until late =)

Question #2: This sort of goes along with #1, but if I get the higher seed, is my cartridge guaranteed to only hit the higher seeds for every frame, every time I start up the game?

Question #3: If neither of the above is the case, does each frame have 50% probability for either value, or does one have higher probability over the other?
Question 1, 2 and 3:
No, every frame on every startup could calculate both seeds.
And yes, what i have seen it was a 50% probability.

I think that there are two possibilities why there are two seeds on the same frame:
1) The autofire is not fast/accurate enough and sometimes hits to late or something.
2) Within a frame the button press is monitored more then one time.

Edit: I am not really into GBA ASM, but perhaps anyone reading this?

Here is what I've found so far:
Click me
This shows the seed 98DE gets written into memory and some instructions before, i cannot see if it is generated there.
 

mattj

blatant Nintendo fanboy
mattj, is SR'ing the same with the gamecube controller as it is on the gba? Also, when do you start the turbo? Is it when you press A on the SR? I'm thinking of getting the gba player and turbo controller, but it seems a little steep in price just to have a non-hacked Selfdestruct Mewtwo. Might be worth it though, as I don't hack anything, and I don't consider RNG abuse cheating, or I wouldn't be helping in this research ;)
Yeah from what I can tell it's pretty much the same, it's just it's waaaaaaaaaaaaaaaay easier to get consistent delays/frames with the turbo controler because it does all the consistent button mashing for you, all you have to do is hold A.
I wish I could post a vid of me actually doing it (it's so easy) but I don't have a decent camera. Basically, I hold down the Reset button on the Gamecube with my right hand and hover my finger over the A button on the Turbo Controler at the same time, and listen to the beat of the game music to get throuroughly synched, then when I feel I'm ready I release the Reset button (which Resets the game) AND hold A down AT THE SAME TIME.
Oh, and are they expensive now? The controller is still 15$ retail (less used) and at least when I bought the GBA Player a few years ago it was only 12$ used at Gamestop. That's less than my 35$ USED Fire Red Cart.

*cries to himself over all the games he traded in to get that stupid cart...*

Okay here's the first 10 SRs using the slowest setting on my Controller. Starting with 10 just to see if it's giving "decently consistent" starting seeds or not (seems you can usually tell by 10 or so).
Code:
1)  (Lonely): 31 / 15 / 20 / 0 / 19 / 24, 40f9, 579
2) (Quiet): 30 / 13 / 8 / 30 / 24 / 5, 9c0, 579
3)  (Naughty): 8 / 23 / 16 / 30 / 30 / 26, 32ea, 579
4) (Timid): 8 / 7 / 27 / 8 / 31 / 11, 44bf, 579
5)  (Lax): 12 / 0 / 8 / 9 / 3 / 29, 59f0, 580
6) (Lax): 26 / 26 / 5 / 2 / 19 / 9, 60d1, 579
7) (Bold): 3 / 6 / 10 / 25 / 24 / 28, bf88, 579
8) (Careful): 7 / 23 / 4 / 3 / 5 / 9, 35d7, 579
9) (Hardy): 9 / 3 / 5 / 8 / 9 / 13, 35d7, 580
10) (Relaxed): 15 / 9 / 9 / 7 / 25 / 18, 9b5, 579
Not very happy with the consistency of those starting seeds at all (though the frames are great!) Gonna go back and try somehow timing the start of the Turbo A but back on High again. Maybe timing it to the lil gleam of the light in the startup or something...

[edit]
Okay, here's what I did this time. I Soft Reset, and let the game play through to the Nido/Gar fight scene, bobbed to the music to get in synch and held Turbo A on the fastest setting on the beginning of the beat of the final/held note. Got some decent results for just 10 SRs (I'm tiiiiiiiiiiiiiiiiiiiired. x_x)

Code:
1) (Naughty): 23 / 18 / 28 / 12 / 3 / 29, 34e9, 563
2) (Rash): 19 / 1 / 26 / 17 / 4 / 21, ebb2, 564
3) (Lax): 11 / 6 / 27 / 31 / 11 / 31, 3c49, 564
4) (Lonely): 19 / 18 / 20 / 5 / 9 / 21, 5964, 567
5) (Mild): 1 / 17 / 4 / 24 / 20 / 29, 596d, 567
6) (Brave): 23 / 8 / 20 / 14 / 14 / 10, 3421, 564
7) (Calm): 29 / 24 / 2 / 7 / 1 / 12, 596d, 564
8) (Rash): 28 / 27 / 20 / 9 / 3 / 7, 38fc, 564
9) (Calm): 4 / 29 / 30 / 17 / 11 / 5, 3c4f, 567
10) (Lax): 11 / 6 / 27 / 31 / 11 / 31, 3c49, 564
11) (Docile): 25 / 12 / 23 / 30 / 18 / 14, 58a5, 567
12) (Docile): 25 / 12 / 23 / 30 / 18 / 14, 58a5, 567
13) (Quiet): 18 / 7 / 25 / 31 / 11 / 4, fd13, 567
14) (Lax): 11 / 6 / 27 / 31 / 11 / 31, 3c49, 564
15) (Timid): 11 / 19 / 15 / 16 / 17 / 17, 609c, 567
16) (Calm): 29 / 24 / 2 / 7 / 1 / 12, 596d, 564
17) (Quiet): 0 / 1 / 27 / 29 / 3 / 24, 387d, 564
18) (Careful): 29 / 4 / 23 / 29 / 2 / 31, eae6
19) (Rash): 6 / 19 / 14 / 2 / 4 / 20, 607c, 564
20) (Bashful): 10 / 27 / 23 / 20 / 30 / 20, 3c45, 567
I like these SRs much better than the other ones. Lots of doubles or "near doubles" (3c49 / 3c4f / 596d / 5964) which is a great sign for only 10 SRs and still getting used to it literally. I'll do 40 more tomorrow evening and hope for new consistent starting seeds with maybe better target spreads on them...

Few New Target Spreads:
Code:
3c49, Naive 29 / 31 / 30 / 28 / 30 / 30  F1624 (4:33:73)
3c49, Hasty 26 / 29 / 29 / 26 / 25 / 31  F213370 (59:16:16)

3c4f, Naive 26 / 29 / 31 / 31 / 27 / 31  F97918 (17:11:96)

596d, Hasty 30 / 27 / 28 / 29 / 26 / 31 F131381 (36:29:68)
BY THE WAY, JUST INCASE I MISSED IT, HAVE WE COME TO AN AGREEMENT AS TO WHAT THE EXACT POINT THE GAME SEEDS AT IS?? Is it when you press A and it makes that little Roar on the "Press Start, Venu/zard Screen"?? It would REEEEEEEALLY help a lot to know that point cuz then we could actually abuse it like in DPPt, (cuz we know it seeds based on the time between SR and "Continue Game").
 
BY THE WAY, JUST INCASE I MISSED IT, HAVE WE COME TO AN AGREEMENT AS TO WHAT THE EXACT POINT THE GAME SEEDS AT IS?
The moment you press the button an it roars, starts the screen change and also the generation of the initial seed.
The generation is complete 4 Frames after the screen is complete white.
 

mattj

blatant Nintendo fanboy
EXCELENT! and i assume that the frames start running at sixty frames per second as soon as the initial seed is generated? Or does it wait till the continue screen or the review?
 
I've some good news, and some bad news.

Creation of the initial seed is not complex, it's not even a formula needed.
How does it work? After some more debugging i found out that the
initial seed gets copied from 0x04000104 to its final position in memory (0x02020000).
That adress is the counter of the GBA timer 2/4, which is running @ 256Hz; 65536clks.
More about those Timers can be found here.

The timer starts counting when the screen changes to the "Press Start"-Screen.
This is initiated by the first button press or waiting till intro is finished.
Once it started counting, it will do so until the initial seed has been determinated.
A soft reset will have the same effect as if you switch off the GBA.

Also this explains my captured initial seeds. The low ones from frame 1 to 48 had no
other instructions at the moment the first button was pressed.
The ones after that have a routine running which takes some cycles and therefore increase the counter.

I think it will be almost impossible to get a desired initial seed, tough you
can get some equal with the help of autofire. The clock of the timer is imho too high.
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Where have you been all this time? Good work man, I should have majored in CS or CpE... it's going to take me a while to wrap my head around this. I'll just use the "reactive" method, find a common seed for myself, and get my damn Mewtwo. Hopefully this will take less time to successfully pull this off than it has constantly calculating seeds. Again, good job.

Now, the next thing we need to do is learn to RNG abuse XD so we can get Baton Pass Zapdos!
 

mattj

blatant Nintendo fanboy
Maybe it's just me, but that actually sounds completely abusable.

Sounds like you're saying that it's the time between the first press of A that triggers the "Venu/zard Scene", to the next press of A that moves onto the "Continue Screen". If we had some kind of adjustable timer, we could just start it when we press A to trigger the "Venu/zard Scene" and wait XX:XX to press A again to get whatever seed we want. Then, another adjustable timer would start right after that, which would time your frame for you. Granted, you'll miss your target starting seed a lot because it's so finicky, but, meh, I've already done 200+ Soft Resets, so... what's a few more. :P

Does anybody know if Emloop can do this? I know Pikatimer can only go down to 30 seconds for the first timer and up to 17ish minutes for the second, so that wouldn't be too practical.

Oh, and if the seed generation is so simple, do any of you programers who follow the thread think they could whip up a simple lil program that would tell you what starting seed you'd get if you wated XX:XX time?
*plzjesusplzjesusplzjesusplzjesusplzjesus*

Oh, and I did 10 more SRs using that new method and got some good looking results. I'm still running the numbers, but I'll just edit them into my last post so as to not waste any space. Looks like I'm getting some new good starting seeds, and I hope there are some better spreads on them. If anybody (Misdreavus and others) are still thinking of looking into buying the gear I've got, all this data should hold true for you guys as well, so you owe me one. :PP
 

Nexus

Forever the Recusant
is a Site Content Manager Alumnusis a Senior Staff Member Alumnusis a Contributor Alumnus
Maybe it's just me, but that actually sounds completely abusable.


Does anybody know if Emloop can do this? I know Pikatimer can only go down to 30 seconds for the first timer and up to 17ish minutes for the second, so that wouldn't be too practical.

from experience yes, emloop has an adjustable pretimer along with its main timer
 

mattj

blatant Nintendo fanboy
from experience yes, emloop has an adjustable pretimer along with its main timer
Gawd. More SRs then X_X

Off to do that...

OH AND PROBABLY ONE OF THE LAST THINGS WE NEED TO KNOW:
What is the exact moment that the frames stop running? Is it when you press A and the pokemon makes his noise and that little box pops up, or is it when the battle actually starts? It makes a real difference.
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus

What is the exact moment that the frames stop running? Is it when you press A and the pokemon makes his noise and that little box pops up, or is it when the battle actually starts? It makes a real difference.
Well, take a look at some of the data I posted before... here's an example
5, Naughty, 21, 4, 25, 22, 26, 23, 4b8d2bfe, 2598b2f7, 1, b9ed, 1435, 23.93,
One thing I forgot to fix was my fpsn value, as in the clock frequency of my particular cart. The actual formula is 60*Time/25.00, which for this case would be 57.432 fps. Now, on to the real point:

My time between Press Start and "Encounter" was 25 seconds. More specifically, and I should have stated this before, "Encounter" was when I pressed A after "Mew!" popped up, aka when I activate the battle. Note the frame I hit was only 1435. Doing some quick math, 1435 frames / (57.432 frames/sec) = 24.986, practically 25.00 sec. So, I believe the frames stop when you press A after "Mew!". This is really nice, because in Emerald you have to calibrate for each legendary according to the length of their cry and over-world animation.
 

mattj

blatant Nintendo fanboy
Thanks nix that helps. Just to verify i'm gonna do a soft reset this evening with my turbo on fast (so i know what seed i'm gonna hit pretty much) and i'll let it set on 'me w' for a while and then check the frame. I TRUST YOU but i need to see it myself too.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top