summaryrefslogtreecommitdiffstats
path: root/src/rng.c
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-05-11 14:30:12 +0200
committerBad Diode <bd@badd10de.dev>2021-05-11 14:30:12 +0200
commit7bccc14ea476b380ab77f05463fad1cb57149e58 (patch)
treec8ae013b3983eaa758c0779fb4071441acd33ca5 /src/rng.c
parentc3045883260e0e1ba06f9d965487e21cdb47392b (diff)
downloadgba-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.c15
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 @@
1u16 rng_state;
2
3u32 hash16(u32 input, u32 key) {
4 u32 hash = input * key;
5 return ((hash >> 16) ^ hash) & 0xFFFF;
6}
7
8u16 rng16() {
9 rng_state += 0xbadd;
10 return hash16(rng_state, 0x10de);
11}
12
13u32 rng32() {
14 return (rng16() << 16) | rng16();
15}