


' Display the seed, so the user knows we're working. ' they can start the game on a specific clock cycle! ' number, and, even if they could, few people have reflexes so well-tuned ' couldn't see what number the counter was at in order to try for a specific ' was based on when they started the game, and, even if they did, they ' randomizer, it was still pretty safe because the user didn't know the seed Although this makes it easier to game the ' numbers 0-255, and, whatever number it was on when the user started the ' It was much easier to just have a single incrementing byte loop through the ' show random numbers, but old video games rarely went through this hassle. ' generate pseudorandom numbers for the seed in order to make the display ' which is the most common seed generator. ' generate a seed this way because consoles didn't have access to a clock ' starts the program after the title screen is displayed. ' This section generates a seed (starting value) based on when the user ' different order, so change them up as you need them: The following will work, and each produces a Only some numbers will result in an even spread ' This number is the value we're going to use to xor the input each time ' This code was written by Dean Tersigni, adapted from the 6502 assembly codeĭeclare Function NextLFSRNumber (Seed As UByte) As UByte ' random numbers since didn't have access to stronger hardware. ' fact, a lot of old video games would use an algorithm like this to generate ' weak hardware like an old 8-bit computer can ultilize it with ease. ' algorithm uses very little memory and CPU cycles power, so even extremely ' generator, for example, somewehere in the sequence you will always see the The result is by no means a quality random number ' in an order that looks kind-of random, but are fully determined from the The result is all the numbers from 0-255 rearranged ' This program uses a linear-feedback shift register (LFSR) to generate However, there is a link to how you would write the program using 8-bit 6502 assembly. As it is written, it actually uses 16-bit integers, but, that's only because FreeBASIC doesn't have native access to the CPUs registers. However, it was very popular with 8-bit computers because it uses very little memory, takes only around a dozen clock cycles, and random enough for non-secure use.īelow is the source and beyond that a compiled Windows binary. This method of generating pseudorandom numbers was developed in 1965 and is no longer used in modern programming because the random sequence has various problems.

8-bit LFSR Randomizer is a program I wrote in FreeBASIC which demonstrates one of the ways programmers used a linear-feedback shift register to generate pseudorandom numbers.
