random seed initialization added, tweaked sequence generation

This commit is contained in:
FeralChild64 committed 2020-02-19 16:55:51 +01:00
1 parent 103325cc53
commit de605cd5ee
7 files changed
+119 -9

No files matched your search

+19 -9
View File
@@ -3,7 +3,7 @@
// #LAYOUT# * * #IGNORE
//
// A fast random generator, idea from:
// A fast pseudorandom generator, modified idea from:
// - https://codebase64.org/doku.php?id=base:32bit_galois_lfsr
//
// Output:
@@ -15,8 +15,6 @@
rnd_generate:
// Generate new 4-byte random number
asl RNDX+1
rol RNDX+2
rol RNDX+3
@@ -27,12 +25,15 @@ rnd_generate:
lda RNDX+1
eor #$B7
sta RNDX+1
lda RNDX+2
eor #$1D
sta RNDX+2
lda RNDX+3
eor #$C1
sta RNDX+3
lda RNDX+4
eor #$04
sta RNDX+4
@@ -41,23 +42,32 @@ rnd_generate:
rnd_generate_copy:
// Copy the number to FAC1, order changed on purpose
// Copy the generated number to FAC1, mangle it a little
lda RNDX+3
eor #$62
sta FAC1_mantissa+0
lda RNDX+1
eor #$4E
sta FAC1_mantissa+1
lda RNDX+2
sta FAC1_mantissa+2
lda RNDX+4
eor #$97
sta FAC1_mantissa+2
lda RNDX+2
sta FAC1_mantissa+3
// FALLTROUGH
rnd_generate_finalize:
lda #$00
sta FACOV
sta FAC1_sign
lda #$80
sta FACOV // just to prevent 0 after normalization
sta FAC1_exponent
sta RNDX+0 // in case someone tries to use the float directly
jmp normal_FAC1