diff options
author | Bad Diode <bd@badd10de.dev> | 2021-06-08 11:21:37 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-06-08 11:21:37 +0200 |
commit | 404a85e7ab39e26a5ac9d0fba470a53fd5cb959f (patch) | |
tree | 53db2099023619d314be8ae35fbcb247d6f84ca8 /src/rng.c | |
parent | 32cd65387f8ba2ea6a92c1c44da7a31b8ceef4b0 (diff) | |
download | stepper-404a85e7ab39e26a5ac9d0fba470a53fd5cb959f.tar.gz stepper-404a85e7ab39e26a5ac9d0fba470a53fd5cb959f.zip |
Add old sequencer logic and input control
Diffstat (limited to 'src/rng.c')
-rw-r--r-- | src/rng.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rng.c b/src/rng.c new file mode 100644 index 0000000..96760b8 --- /dev/null +++ b/src/rng.c | |||
@@ -0,0 +1,15 @@ | |||
1 | u16 rng_state; | ||
2 | |||
3 | u32 hash16(u32 input, u32 key) { | ||
4 | u32 hash = input * key; | ||
5 | return ((hash >> 16) ^ hash) & 0xFFFF; | ||
6 | } | ||
7 | |||
8 | u16 rng16() { | ||
9 | rng_state += 0xbadd; | ||
10 | return hash16(rng_state, 0x10de); | ||
11 | } | ||
12 | |||
13 | u32 rng32() { | ||
14 | return (rng16() << 16) | rng16(); | ||
15 | } | ||