Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void advance_seed(long *seed){
- *seed = (*seed * 0x41C64E6D + 0x3039) & 0x7FFFFFFF;
- }
- int select_turnip(long seed, long nseed){
- int isitem = (unsigned long)((seed >> 8) * 80) >> 23;
- int n;
- if(isitem == 0){
- n = (unsigned long)((nseed >> 8) * 6) >> 23;
- if(n < 2){ return 11; } //bomb
- else if(n < 5){ return 12; } //saturn
- else{ return 13; } //bs
- }else{
- n = (unsigned long)(nseed * 58) >> 31;
- if(n < 35){ return 0; }
- else if(n < 41){ return 1; }
- else if(n < 46){ return 2; }
- else if(n < 49){ return 3; }
- else if(n < 52){ return 4; }
- else if(n < 56){ return 5; }
- else if(n < 57){ return 6; }
- else{ return 7; } //stich
- }
- }
- int main(){
- long rng, seed, nseed, tmp;
- int t1, t2;
- int i, j;
- for(i = 0; i < 1000000; i++){
- t1 = -1, t2 = -1;
- rng = i * 256;
- for(j = 0; j < 19; j++){
- advance_seed(&rng);
- }
- seed = rng;
- advance_seed(&rng);
- nseed = rng;
- t1 = select_turnip(seed, nseed);
- for(j = 0; j < 263; j++){
- advance_seed(&rng);
- }
- seed = rng;
- advance_seed(&rng);
- nseed = rng;
- t2 = select_turnip(seed, nseed);
- if(t1 == 13 && t2 ==11){
- printf("%08X \n", i * 256);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement