aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-random.c
blob: 91fd9297b9efa1db3b64092babc6cb5d45495181 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// fsm-random.c: Random number generator for SpaghettiMonster.
// Copyright (C) 2017-2023 Selene ToyKeeper
// SPDX-License-Identifier: GPL-3.0-or-later

#pragma once

#ifdef USE_PSEUDO_RAND
uint8_t pseudo_rand() {
    static uint16_t offset = 1024;
    // loop from 1024 to 4095
    offset = ((offset + 1) & 0x0fff) | 0x0400;
    pseudo_rand_seed += 0b01010101;  // 85
    return pgm_read_byte(offset) + pseudo_rand_seed;
}
#endif