mirror of
https://github.com/iProgramMC/DSPlatformMaker.git
synced 2025-06-19 09:15:47 -04:00
23 lines
539 B
C
23 lines
539 B
C
unsigned short rng;
|
|
|
|
short sky_colour = 0xEEEF;
|
|
|
|
unsigned short rng_function(unsigned short input){
|
|
if(input == 0x560A) input=0;
|
|
unsigned short S0 = (unsigned char)input<<8;
|
|
S0 = S0 ^ input;
|
|
input = ((S0 & 0xFF) << 8) | ((S0 & 0xFF00) >> 8);
|
|
S0 = ((unsigned char)S0 << 1) ^ input;
|
|
short S1 = (S0 >> 1) ^ 0xFF80;
|
|
if((S0 & 1) == 0){
|
|
if(S1 == 0xAA55){input = 0;}else{input=S1 ^ 0x1FF4;}
|
|
}else{
|
|
input = S1 ^ 0x1FF4;
|
|
}
|
|
return (unsigned short)input;
|
|
}
|
|
|
|
void rng_update() {
|
|
rng = rng_function(GlobalTimer);
|
|
}
|