CSMKeyControll function is supposed to set the top level latch for each slot. However, at the moment, it incorrectly updates only the first slot. Patch fixes the problem.
Signed-off-by: Prasad Joshi <prasadjoshi.li...@gmail.com> --- hw/audio/fmopl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/audio/fmopl.c b/hw/audio/fmopl.c index 290a224..eb60c12 100644 --- a/hw/audio/fmopl.c +++ b/hw/audio/fmopl.c @@ -725,7 +725,7 @@ INLINE void CSMKeyControll(OPL_CH *CH) OPL_KEYOFF(slot2); /* total level latch */ slot1->TLL = slot1->TL + (CH->ksl_base>>slot1->ksl); - slot1->TLL = slot1->TL + (CH->ksl_base>>slot1->ksl); + slot2->TLL = slot2->TL + (CH->ksl_base>>slot2->ksl); /* key on */ CH->op1_out[0] = CH->op1_out[1] = 0; OPL_KEYON(slot1); -- 1.8.1.2