Skip to content

Commit ca61f05

Browse files
committed
add an impl for seeds
1 parent 57f4dc1 commit ca61f05

File tree

2 files changed

+20
-32772
lines changed

2 files changed

+20
-32772
lines changed

tests/src/rng.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,29 @@ use std::collections::HashSet;
44
pub fn test() {
55
assert_eq!(
66
seeds(),
7-
include_str!("./rng_seeds.txt")
8-
.trim()
9-
.split('\n')
10-
.map(|s| s.trim().parse::<u16>().expect(s))
11-
.collect::<HashSet<_>>()
7+
seeds_impl(),
128
);
139
}
1410

11+
pub fn seeds_impl() -> HashSet<u16> {
12+
let mut seeds: HashSet<u16> = HashSet::new();
13+
14+
let mut seed = 0x8988;
15+
16+
loop {
17+
seeds.insert(seed);
18+
19+
let new_bit = ((seed >> 9) ^ (seed >> 1)) & 1;
20+
seed = (new_bit << 15) | (seed >> 1);
21+
22+
if seed == 0x8988 {
23+
break;
24+
}
25+
}
26+
27+
seeds
28+
}
29+
1530
pub fn seeds() -> HashSet<u16> {
1631
let mut emu = util::emulator(None);
1732
let rng_seed = labels::get("rng_seed");

0 commit comments

Comments
 (0)