Index: apps/codecs/libgme/emu2413.c =================================================================== --- apps/codecs/libgme/emu2413.c (Revision 30281) +++ apps/codecs/libgme/emu2413.c (Arbeitskopie) @@ -103,8 +103,8 @@ #define EG_MUTE (1<> 6) & 3; patch[1].KL = (dump[3] >> 6) & 3; - patch[0].TL = (dump[2]) & 63; + patch[0].TL = (dump[2] >> 3) & 7; patch[0].FB = (dump[3]) & 7; patch[0].WF = (dump[3] >> 3) & 1; patch[1].WF = (dump[3] >> 4) & 1; @@ -1652,7 +1652,7 @@ case 0x02: opll->patch[0].KL = (data >> 6) & 3; - opll->patch[0].TL = (data) & 63; + opll->patch[0].TL = (data >> 3) & 7; for (i = 0; i < 9; i++) { if (opll->patch_number[i] == 0) Index: apps/codecs/libgme/emu8950.c =================================================================== --- apps/codecs/libgme/emu8950.c (Revision 30281) +++ apps/codecs/libgme/emu8950.c (Arbeitskopie) @@ -206,7 +206,7 @@ int fnum, block, TL, KL; for (fnum=0; fnum<16; fnum++) for (block=0; block<8; block++) - for (TL=0; TL<64; TL++) + for (TL=0; TL<(1<= 0) { this->slot[s]->patch.KL = (data>>6)&3; - this->slot[s]->patch.TL = (data)&63; + this->slot[s]->patch.TL = (data>>3)&7; slotUpdateAll(this->slot[s]); } this->reg[rg] = data; Index: apps/codecs/libgme/emu8950.h =================================================================== --- apps/codecs/libgme/emu8950.h (Revision 30281) +++ apps/codecs/libgme/emu8950.h (Arbeitskopie) @@ -25,8 +25,8 @@ static const int EG_DP_BITS = 23; #define EG_DP_WIDTH (1<