- Ja sona! pero les freqüències estàn mal (massa altes). Demà més.
This commit is contained in:
@@ -65,7 +65,7 @@ namespace audio
|
|||||||
void write_register(int port, int val)
|
void write_register(int port, int val)
|
||||||
{
|
{
|
||||||
registers[selected_register] = val;
|
registers[selected_register] = val;
|
||||||
uint32_t clock = (z80::getClock() >> 5);
|
uint32_t clock = (z80::getClock() >> 4);
|
||||||
|
|
||||||
switch (selected_register) {
|
switch (selected_register) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -191,18 +191,20 @@ namespace audio
|
|||||||
{
|
{
|
||||||
// Mix tone and noise on channel A given register 7 values
|
// Mix tone and noise on channel A given register 7 values
|
||||||
channel_a_level = 1;
|
channel_a_level = 1;
|
||||||
if (registers[7] & MIXER_REG_A_TONE) channel_a_level &= channel_a_tone_level;
|
if ((registers[7] & MIXER_REG_A_TONE)==0) channel_a_level &= channel_a_tone_level;
|
||||||
if (registers[7] & MIXER_REG_A_NOISE) channel_a_level &= noise_level;
|
if ((registers[7] & MIXER_REG_A_NOISE)==0) channel_a_level &= noise_level;
|
||||||
|
|
||||||
// Mix tone and noise on channel B given register 7 values
|
// Mix tone and noise on channel B given register 7 values
|
||||||
channel_b_level = 1;
|
channel_b_level = 1;
|
||||||
if (registers[7] & MIXER_REG_B_TONE) channel_b_level &= channel_b_tone_level;
|
if ((registers[7] & MIXER_REG_B_TONE)==0) channel_b_level &= channel_b_tone_level;
|
||||||
if (registers[7] & MIXER_REG_B_NOISE) channel_b_level &= noise_level;
|
if ((registers[7] & MIXER_REG_B_NOISE)==0) channel_b_level &= noise_level;
|
||||||
|
|
||||||
// Mix tone and noise on channel C given register 7 values
|
// Mix tone and noise on channel C given register 7 values
|
||||||
channel_c_level = 1;
|
channel_c_level = 1;
|
||||||
if (registers[7] & MIXER_REG_C_TONE) channel_c_level &= channel_c_tone_level;
|
if ((registers[7] & MIXER_REG_C_TONE)==0) channel_c_level &= channel_c_tone_level;
|
||||||
if (registers[7] & MIXER_REG_C_NOISE) channel_c_level &= noise_level;
|
if ((registers[7] & MIXER_REG_C_NOISE)==0) channel_c_level &= noise_level;
|
||||||
|
|
||||||
|
//zx_ula::set_border_color(channel_a_tone_level&0xf);
|
||||||
|
|
||||||
const uint8_t channel_a_volume = (registers[8]&0x10) ? envelope_volume : registers[8]&0xf;
|
const uint8_t channel_a_volume = (registers[8]&0x10) ? envelope_volume : registers[8]&0xf;
|
||||||
const uint8_t channel_b_volume = (registers[9]&0x10) ? envelope_volume : registers[9]&0xf;
|
const uint8_t channel_b_volume = (registers[9]&0x10) ? envelope_volume : registers[9]&0xf;
|
||||||
@@ -213,7 +215,6 @@ namespace audio
|
|||||||
const uint8_t channel_c_sample = volume_table[(channel_c_level&1) * channel_c_volume] >> 1;
|
const uint8_t channel_c_sample = volume_table[(channel_c_level&1) * channel_c_volume] >> 1;
|
||||||
|
|
||||||
uint8_t sample = (channel_a_sample+channel_b_sample+channel_c_sample)&0xff;
|
uint8_t sample = (channel_a_sample+channel_b_sample+channel_c_sample)&0xff;
|
||||||
zx_ula::set_border_color(sample&0xf);
|
|
||||||
return sample;
|
return sample;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user