From 35c87c5aeabdb56d99a0b866813a9eab31b87580 Mon Sep 17 00:00:00 2001 From: Asnivor Date: Tue, 27 Mar 2018 16:38:08 +0100 Subject: [PATCH] ZXHawk: Fixed AY-3-8912 volume control (values under 50 were registering as maxvolume) - #1158 --- .../SinclairSpectrum/Hardware/SoundOuput/AYChip.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AYChip.cs b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AYChip.cs index d2d015ff53..161b93176b 100644 --- a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AYChip.cs +++ b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Hardware/SoundOuput/AYChip.cs @@ -526,7 +526,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum /// /// The current volume /// - private int _volume = 50; + private int _volume = 75; /// /// Volume tables state @@ -553,7 +553,10 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum /// private void UpdateVolume() { - var vol = ((ulong)0xFFFF * (ulong)_volume / 100UL) - 20000 ; + int upperFloor = 40000; + var inc = (0xFFFF - upperFloor) / 100; + + var vol = inc * _volume; // ((ulong)0xFFFF * (ulong)_volume / 100UL) - 20000 ; _volumeTables = new uint[6][]; // parent array