diff --git a/sound/fmopl.cpp b/sound/fmopl.cpp index b6686a89627..06499953987 100644 --- a/sound/fmopl.cpp +++ b/sound/fmopl.cpp @@ -1147,6 +1147,11 @@ FM_OPL *makeAdlibOPL(int rate) { env_bits = FMOPL_ENV_BITS_HQ; eg_ent = FMOPL_EG_ENT_HQ; } + else + if (ConfMan.hasKey("FM_medium_quality") && ConfMan.getBool("FM_medium_quality")) { + env_bits = FMOPL_ENV_BITS_MQ; + eg_ent = FMOPL_EG_ENT_MQ; + } else { env_bits = FMOPL_ENV_BITS_LQ; eg_ent = FMOPL_EG_ENT_LQ; diff --git a/sound/fmopl.h b/sound/fmopl.h index 701238dc405..c65fd553ce0 100644 --- a/sound/fmopl.h +++ b/sound/fmopl.h @@ -30,8 +30,10 @@ enum { FMOPL_ENV_BITS_HQ = 16, + FMOPL_ENV_BITS_MQ = 8, FMOPL_ENV_BITS_LQ = 8, FMOPL_EG_ENT_HQ = 4096, + FMOPL_EG_ENT_MQ = 1024, FMOPL_EG_ENT_LQ = 128 };