Advertisement
maziari

SSBB - Peach BtT

Feb 20th, 2023
655
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void advance_seed(long *seed){
  6.     *seed = (*seed * 0x41C64E6D + 0x3039) & 0x7FFFFFFF;
  7. }
  8.  
  9. int select_turnip(long seed, long nseed){
  10.     int isitem = (unsigned long)((seed >> 8) * 80) >> 23;
  11.     int n;
  12.     if(isitem == 0){
  13.         n = (unsigned long)((nseed >> 8) * 6) >> 23;
  14.         if(n < 2){ return 11; } //bomb
  15.         else if(n < 5){ return 12; } //saturn
  16.         else{ return 13; } //bs
  17.     }else{
  18.         n = (unsigned long)(nseed * 58) >> 31;
  19.         if(n < 35){ return 0; }
  20.         else if(n < 41){ return 1; }
  21.         else if(n < 46){ return 2; }
  22.         else if(n < 49){ return 3; }
  23.         else if(n < 52){ return 4; }
  24.         else if(n < 56){ return 5; }
  25.         else if(n < 57){ return 6; }
  26.         else{ return 7; } //stich
  27.     }
  28. }
  29.  
  30. int main(){
  31.     long rng, seed, nseed, tmp;
  32.     int t1, t2;
  33.     int i, j;
  34.    
  35.     for(i = 0; i < 1000000; i++){
  36.         t1 = -1, t2 = -1;
  37.        
  38.         rng = i * 256;
  39.         for(j = 0; j < 19; j++){
  40.             advance_seed(&rng);
  41.         }
  42.         seed = rng;
  43.         advance_seed(&rng);
  44.         nseed = rng;
  45.         t1 = select_turnip(seed, nseed);
  46.        
  47.         for(j = 0; j < 263; j++){
  48.             advance_seed(&rng);
  49.         }
  50.         seed = rng;
  51.         advance_seed(&rng);
  52.         nseed = rng;
  53.         t2 = select_turnip(seed, nseed);
  54.        
  55.         if(t1 == 13 && t2 ==11){
  56.             printf("%08X \n", i * 256);
  57.         }
  58.     }
  59.    
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement