aboutsummaryrefslogtreecommitdiff
path: root/arch/random.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/random.h')
-rw-r--r--arch/random.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/random.h b/arch/random.h
new file mode 100644
index 0000000..ad65660
--- /dev/null
+++ b/arch/random.h
@@ -0,0 +1,14 @@
+// tk-random.h: Smaller pseudo-random function(s).
+// Copyright (C) 2015-2023 Selene ToyKeeper
+// SPDX-License-Identifier: GPL-3.0-or-later
+#pragma once
+
+uint8_t pgm_rand() {
+ static uint16_t offset = 255;
+ // loop through ROM space, but avoid the first 256 bytes
+ // because the beginning tends to have a big ramp which
+ // doesn't look very random at all
+ offset = ((offset + 1) & 0x3ff) | 0x0100;
+ return pgm_read_byte(offset);
+}
+