@ Random number routine by Dooby
@ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

.global Random

.arm 
.align 2 
.section .iwram, "ax", %progbits 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@
@ u32 Random(void)
@ Returns a random word.
@
Random:
	ldr	a3, =RandomSeed			@ Point at seeds.
	ldmia	a3, {a1, a2}			@ Load them.
	tst	a2, a2, lsr #1			@ Top bit into carry.
	movs	a4, a1, rrx			@ 33 bit rotate right.
	adc	a2, a2, a2			@ Carry into lsb of Rb.
	eor	a4, a4, a1, lsl #12		@ (involved!)
	eor	a1, a4, a4, lsr #20		@ (similarly involved!)
	stmia	a3, {a1, a2}			@ Use these next time.
	bx	lr

	.pool

RandomSeed:
	.word	0x87799bf2	@ I used some random
	.word	0x0b2833ab	@ numbers I liked as seed :)
	
.end

    Source: geocities.com/v_d_d/gba

               ( geocities.com/v_d_d)