diff options
author | Bad Diode <bd@badd10de.dev> | 2021-05-11 14:30:12 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-05-11 14:30:12 +0200 |
commit | 7bccc14ea476b380ab77f05463fad1cb57149e58 (patch) | |
tree | c8ae013b3983eaa758c0779fb4071441acd33ca5 /src/rng.c | |
parent | c3045883260e0e1ba06f9d965487e21cdb47392b (diff) | |
download | gba-experiments-7bccc14ea476b380ab77f05463fad1cb57149e58.tar.gz gba-experiments-7bccc14ea476b380ab77f05463fad1cb57149e58.zip |
Add default wave patterns in channel 3
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 | } | ||