mirror of
https://github.com/Oibaf66/frodo-wii.git
synced 2024-11-10 21:55:11 +01:00
More sound fixes
This commit is contained in:
parent
4946f709c3
commit
f1bd3a86f4
@ -405,6 +405,8 @@ void Network::EnqueueSound(uint32 linecnt_diff, uint8 adr, uint8 val)
|
||||
{
|
||||
NetworkUpdateSoundInfo *cur = &this->sound_active[this->sound_head];
|
||||
|
||||
if (linecnt_diff > 255)
|
||||
linecnt_diff = 255;
|
||||
cur->adr = adr;
|
||||
cur->val = val;
|
||||
cur->delay_cycles = linecnt_diff;
|
||||
@ -424,6 +426,7 @@ void Network::RegisterSidWrite(uint32 linecnt, uint8 adr, uint8 val)
|
||||
{
|
||||
this->EnqueueSound(linecnt - this->sound_last_cycles, adr, val);
|
||||
|
||||
printf("Enqueuing write: %d\n", linecnt - this->sound_last_cycles);
|
||||
/* Update the cycle counter */
|
||||
sound_last_cycles = linecnt;
|
||||
bytes += sizeof(NetworkUpdateSound);
|
||||
|
@ -143,25 +143,30 @@ void DigitalRenderer::PushVolume(uint8 vol)
|
||||
|
||||
void DigitalRenderer::EmulateLine(void)
|
||||
{
|
||||
if (!ready)
|
||||
return;
|
||||
// if (!ready)
|
||||
//return;
|
||||
/* Flush network sound every ~100ms */
|
||||
if (TheC64->network_connection_type == CLIENT)
|
||||
{
|
||||
static NetworkUpdateSoundInfo *cur = NULL;
|
||||
|
||||
if (!cur)
|
||||
if (!cur) {
|
||||
cur = TheC64->peer->DequeueSound();
|
||||
if (cur)
|
||||
printf("delaying: %d\n", cur->delay_cycles);
|
||||
}
|
||||
|
||||
while (cur) {
|
||||
printf("Delaying for %d cycles\n", cur->delay_cycles);
|
||||
cur->delay_cycles--;
|
||||
if (cur->delay_cycles > 0)
|
||||
cur->delay_cycles--;
|
||||
if (cur->delay_cycles != 0)
|
||||
break;
|
||||
/* Delayed long enough - write to the SID! */
|
||||
printf("Writing %02x:%02x\n", cur->adr, cur->val);
|
||||
this->WriteRegister(cur->adr, cur->val);
|
||||
cur = TheC64->peer->DequeueSound();
|
||||
if (cur)
|
||||
printf("delay 2: %d\n", cur->delay_cycles);
|
||||
}
|
||||
}
|
||||
this->PushVolume(volume);
|
||||
|
Loading…
Reference in New Issue
Block a user