- 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)
|
||||
{
|
||||
registers[selected_register] = val;
|
||||
uint32_t clock = (z80::getClock() >> 5);
|
||||
uint32_t clock = (z80::getClock() >> 4);
|
||||
|
||||
switch (selected_register) {
|
||||
case 0:
|
||||
@@ -191,18 +191,20 @@ namespace audio
|
||||
{
|
||||
// Mix tone and noise on channel A given register 7 values
|
||||
channel_a_level = 1;
|
||||
if (registers[7] & MIXER_REG_A_TONE) 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_TONE)==0) channel_a_level &= channel_a_tone_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
|
||||
channel_b_level = 1;
|
||||
if (registers[7] & MIXER_REG_B_TONE) 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_TONE)==0) channel_b_level &= channel_b_tone_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
|
||||
channel_c_level = 1;
|
||||
if (registers[7] & MIXER_REG_C_TONE) 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_TONE)==0) channel_c_level &= channel_c_tone_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_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;
|
||||
|
||||
uint8_t sample = (channel_a_sample+channel_b_sample+channel_c_sample)&0xff;
|
||||
zx_ula::set_border_color(sample&0xf);
|
||||
return sample;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user