From c9d42c085558d9ac0272cd3df4e1868a2c410e46 From: Michael Forney Date: Mon, 15 Feb 2021 09:30:29 +0000 Subject: games/snes: implement DSP noise I'm not sure if this LFSR is the same one used by the hardware or is arbitrary, but it matches the noise sequence used by all other snes emulators I looked at. diff f3f21968489011d0fee39a054c63c70f1a18bb92 c9d42c085558d9ac0272cd3df4e1868a2c410e46 --- a/sys/src/games/snes/dsp.c Mon Feb 15 01:28:12 2021 +++ b/sys/src/games/snes/dsp.c Mon Feb 15 01:30:29 2021 @@ -6,7 +6,7 @@ #include "fns.h" u8int dsp[256], dspstate; -u16int dspcounter, noise; +u16int dspcounter, noise = 0x8000; static s16int samp[2], echoin[2]; enum { @@ -517,6 +517,8 @@ } if(dspcounter-- == 0) dspcounter = 0x77ff; + if(envyes(dsp[FLG] & 0x1f)) + noise = (noise << 13 ^ noise << 14) & 0x8000 | noise >> 1 & ~1; break; case 31: voice(0, 4); voice(2, 1); break; }