forked from len0rd/rockbox
Vastly improved, now working, random! :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1379 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
3a62b56740
commit
25e92bd967
1 changed files with 12 additions and 8 deletions
|
@ -142,12 +142,16 @@ int rand(void)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
|
|
||||||
if(--left < 0)
|
if(--left < 0) {
|
||||||
return rand_reload();
|
y = rand_reload();
|
||||||
|
}
|
||||||
y = *next++;
|
else {
|
||||||
y ^= (y >> 11);
|
y = *next++;
|
||||||
y ^= (y << 7) & 0x9D2C5680U;
|
y ^= (y >> 11);
|
||||||
y ^= (y << 15) & 0xEFC60000U;
|
y ^= (y << 7) & 0x9D2C5680U;
|
||||||
return (y ^ (y >> 18)) & ((2^31)-1); /* 31-bit limit by Björn Stenberg*/
|
y ^= (y << 15) & 0xEFC60000U;
|
||||||
|
y ^= (y >> 18);
|
||||||
|
}
|
||||||
|
|
||||||
|
return y & 0x7fffffff; /* 31-bit limit by Björn Stenberg*/
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue