From 25e92bd967ce404ebe9bf8e6ff7b6b9f5f32e8f9 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 18 Jul 2002 00:03:47 +0000 Subject: Vastly improved, now working, random! :) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1379 a1c6a512-1295-4272-9138-f99709370657 --- firmware/common/random.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'firmware/common/random.c') diff --git a/firmware/common/random.c b/firmware/common/random.c index 1e65eefaa0..5471534e34 100644 --- a/firmware/common/random.c +++ b/firmware/common/random.c @@ -142,12 +142,16 @@ int rand(void) { int y; - if(--left < 0) - return rand_reload(); - - y = *next++; - y ^= (y >> 11); - y ^= (y << 7) & 0x9D2C5680U; - y ^= (y << 15) & 0xEFC60000U; - return (y ^ (y >> 18)) & ((2^31)-1); /* 31-bit limit by Björn Stenberg*/ + if(--left < 0) { + y = rand_reload(); + } + else { + y = *next++; + y ^= (y >> 11); + y ^= (y << 7) & 0x9D2C5680U; + y ^= (y << 15) & 0xEFC60000U; + y ^= (y >> 18); + } + + return y & 0x7fffffff; /* 31-bit limit by Björn Stenberg*/ } -- cgit v1.2.3