diff options
Diffstat (limited to 'arch/random.h')
| -rw-r--r-- | arch/random.h | 14 |
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); +} + |
