mirror of
https://github.com/TomHarte/CLK.git
synced 2024-07-05 10:28:58 +00:00
Corrects SCC volume errors.
Which were leading to substantial overflow.
This commit is contained in:
parent
57ddfcd645
commit
2ffde4c3c2
@ -73,7 +73,7 @@ void SCC::write(uint16_t address, uint8_t value) {
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case 0x8a: case 0x8b: case 0x8c: case 0x8d: case 0x8e:
|
case 0x8a: case 0x8b: case 0x8c: case 0x8d: case 0x8e:
|
||||||
channels_[address - 0x8a].amplitude = value;
|
channels_[address - 0x8a].amplitude = value & 0xf;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x8f:
|
case 0x8f:
|
||||||
@ -88,13 +88,13 @@ void SCC::write(uint16_t address, uint8_t value) {
|
|||||||
void SCC::evaluate_output_volume() {
|
void SCC::evaluate_output_volume() {
|
||||||
output_volume_ =
|
output_volume_ =
|
||||||
static_cast<int16_t>(
|
static_cast<int16_t>(
|
||||||
((
|
(
|
||||||
(channel_enable_ & 0x01) ? static_cast<int8_t>(waves_[0].samples[channels_[0].offset]) * channels_[0].amplitude : 0 +
|
(channel_enable_ & 0x01) ? static_cast<int8_t>(waves_[0].samples[channels_[0].offset]) * channels_[0].amplitude : 0 +
|
||||||
(channel_enable_ & 0x02) ? static_cast<int8_t>(waves_[1].samples[channels_[1].offset]) * channels_[1].amplitude : 0 +
|
(channel_enable_ & 0x02) ? static_cast<int8_t>(waves_[1].samples[channels_[1].offset]) * channels_[1].amplitude : 0 +
|
||||||
(channel_enable_ & 0x04) ? static_cast<int8_t>(waves_[2].samples[channels_[2].offset]) * channels_[2].amplitude : 0 +
|
(channel_enable_ & 0x04) ? static_cast<int8_t>(waves_[2].samples[channels_[2].offset]) * channels_[2].amplitude : 0 +
|
||||||
(channel_enable_ & 0x08) ? static_cast<int8_t>(waves_[3].samples[channels_[3].offset]) * channels_[3].amplitude : 0 +
|
(channel_enable_ & 0x08) ? static_cast<int8_t>(waves_[3].samples[channels_[3].offset]) * channels_[3].amplitude : 0 +
|
||||||
(channel_enable_ & 0x10) ? static_cast<int8_t>(waves_[3].samples[channels_[4].offset]) * channels_[4].amplitude : 0
|
(channel_enable_ & 0x10) ? static_cast<int8_t>(waves_[3].samples[channels_[4].offset]) * channels_[4].amplitude : 0
|
||||||
) * 16) / 5
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@
|
|||||||
buildConfiguration = "Debug"
|
buildConfiguration = "Debug"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
enableASanStackUseAfterReturn = "YES"
|
||||||
disableMainThreadChecker = "YES"
|
disableMainThreadChecker = "YES"
|
||||||
language = ""
|
language = ""
|
||||||
launchStyle = "0"
|
launchStyle = "0"
|
||||||
|
Loading…
Reference in New Issue
Block a user