Well folks, I've taken some logs trying to hit 0xC28F, and have not been very successful, save for a few seeds that were within about 500 of each other (but not close to C28F, unfortunately). The fact that I hit seeds that close is giving me hope in the tempo/beat method that has been developing, since I don't think it was merely a coincidence that they were similar. Still, I cannot shake the fact that these seeds were nowhere near C28F, but we'll put that aside for now.
In the mean time, I have figured out a way to multiply a tempo by a constant in order to decrease the margin of error in hitting our seed.
How to Modify Your Tempo
Some worries have been brought up about the blindingly fast clock that determines the seed in FireRed and LeafGreen, notably by mattj, flovv, Zari, and myself. To rectify this, Zari invented the metronome method, which has proven to be quite elegant in its implementation. However, the spacing between each beat is too wide for a person to hit accurately, so I came up with a way to speed up the the tempo to increase reaction time. Taking a look at the seed formula:
s = (0x3C000000L * (n - 1)) / T & 0xFFFF
Let's look just at the term
If you remember Zari's original formula, the term was n/T, which didn't reflect the initial tap. Let's go back to this formula, but substitute m for his original n as to not confuse it with our current n:
Now, let's say we want to double the tempo. We must find the number of beats, n' that will keep X the same. We must define a new m, called m', then n' will be determined by m'.
Code:
X = 2m / 2T = m' / 2T
m' = 2m
Our new number of beats, n', will be defined similarly to n, as m' + 1
Code:
n' = m' + 1
= 2(n - 1) + 1
n' = 2n - 1
This means that if we have a seed 0xC28F, with a Tempo of 125, and n = 28, we can double the tempo and use our new number of beats:
Code:
T' = 2T = 250 BPM
n' = 56 - 1 = 55
To verify, substitute into our original formula:
Code:
X = (55 - 1)/250 = 54/250 = 27/125
In fact, if we want to multiply our tempo even further, we can define a general variable, a, so that T' = aT, and m' = am
Code:
n' = am + 1 = a(n - 1) + 1 = an - (a - 1)
Now, I used n = 28 for the above example, but our seed formula for 0xC28F was actually multivalued:
T = 125
n = 3, 28, 53 ...
Let's say we want to use n = 3 in order to minimize our pain, and a small multiplier, 3. Now,
Code:
X = 2 / 125
and
n' = 3n - 2 = 7
substituting this into our equation for X, we get
Code:
X = m' / a*T = m' / 375 = 6 / 375
X = 2 / 125