Subject: [stella] Random number generators|
From: jimn8@xxxxxxxxxx (Jim Nitchals)
Date: Mon, 21 Oct 1996 08:05:28 -0700 (PDT)
Communist Mutants did it like this: RANDOM LDA RND ASL ASL EOR SHIPX ADC RND ADC FRAMEL STA RND RTS It uses an ongoing seed (RND), and combines it with the ship's horizontal position and the current video frame number to produce a new seed. It's simple but relies a bit on the randomness of the ship's X position to yield good randomness in itself. Suicide Mission uses a linear feedback shift register (LFSR). Here's the code: RND LDA RNDL LSR LSR SBC RNDL LSR ROR RNDH ROR RNDL LDA RNDL RTS For simplicity of design, this approach is better but it requires 2 bytes of RAM. If the zero-page RAM is in short supply you could modify RND to use Supercharger memory instead.