[PCE] fix Lost Sunheart sound glitch, calling PSG fixed for now (except LFO)

This commit is contained in:
beirich 2011-07-28 06:09:04 +00:00
parent 564f829fd7
commit 0b49dd25a0
2 changed files with 3 additions and 13 deletions

View File

@ -1,19 +1,14 @@
======= TurboGrafx compatibility issues =======
General:
+ Don't have a complete list of instructions affected by T flag. Currently warns if SET precedes an unrecognized instruction.
+ Audio volumes are probably wrong.
+ LFO is not implemented, though I can't tell.
+ Screen resolution is an ongoing issue. Some games appear to show garbage beyond what it supposed to be visible.
Most emulators simply crop the screen at a certain vertical range. For now, I have chosen not to do this.
Right now the emulator is simply displaying a framebuffer. Eventually, we will do an update that emulates NTSC.
But for now we're letting this be. There's no intermediate step between emulating a framebuffer and emulating a TV.
MML Demo - Echo channels are too loud (equal volume!)
The Lost Sunheart (J) - Uses LFO in intro sound strongly!
Eagan's Rendered Sprite Demo - demonstrates sprites that shouldnt be displayed
Games Express CD Card 1993 - dont forget to treat as a turbocd system card
===================================

View File

@ -78,7 +78,6 @@ namespace BizHawk.Emulation.Sound
case 1: // Global Volume select;
MainVolumeLeft = (byte) ((value >> 4) & 0x0F);
MainVolumeRight = (byte) (value & 0x0F);
//Console.WriteLine("Global Volume {0:X} {1:X}",MainVolumeLeft, MainVolumeRight);
break;
case 2: // Frequency LSB
Channels[VoiceLatch].Frequency &= 0xFF00;
@ -92,15 +91,12 @@ namespace BizHawk.Emulation.Sound
case 4: // Voice Volume
Channels[VoiceLatch].Volume = (byte) (value & 0x1F);
Channels[VoiceLatch].Enabled = (value & 0x80) != 0;
if (Channels[VoiceLatch].Enabled)
// Console.WriteLine("Volume[{0}]={1:X}",VoiceLatch, Channels[VoiceLatch].Volume);
Channels[VoiceLatch].DDA = (value & 0x40) != 0;
if (Channels[VoiceLatch].Enabled == false && Channels[VoiceLatch].DDA)
WaveTableWriteOffset = 0;
break;
case 5: // Panning
Channels[VoiceLatch].Panning = value;
//Console.WriteLine("Panning[{0}]={1:X}", VoiceLatch, Channels[VoiceLatch].Panning);
break;
case 6: // Wave data
if (Channels[VoiceLatch].DDA == false)
@ -123,11 +119,10 @@ namespace BizHawk.Emulation.Sound
case 9: // LFO Control
if ((value & 0x80) == 0 && (value & 3) != 0)
{
Console.WriteLine("LFO ON");
Console.WriteLine("**************** LFO ON !!!!!!!!!! *****************");
Channels[1].Enabled = false;
} else
{
Console.WriteLine("LFO OFF");
Channels[1].Enabled = true;
}
break;
@ -171,7 +166,7 @@ namespace BizHawk.Emulation.Sound
} else if (channel.DDA) {
freq = 0;
} else {
if (channel.Frequency == 0) return;
if (channel.Frequency <= 1) return;
freq = PsgBase / (32 * ((int)channel.Frequency));
}
@ -356,4 +351,4 @@ namespace BizHawk.Emulation.Sound
public int Time;
}
}
}
}