- Ja sona! pero les freqüències estàn mal (massa altes). Demà més.

This commit is contained in:
2025-07-24 22:30:47 +02:00
parent 9725e58d92
commit 662583be36

View File

@@ -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;
} }