diff --git a/src/sid/xs_sidplay2.cc b/src/sid/xs_sidplay2.cc index 530aed796..4a337820d 100644 --- a/src/sid/xs_sidplay2.cc +++ b/src/sid/xs_sidplay2.cc @@ -40,6 +40,11 @@ #include #include +#if (LIBSIDPLAYFP_VERSION_MAJ > 2) || \ + (LIBSIDPLAYFP_VERSION_MAJ == 2 && LIBSIDPLAYFP_VERSION_MIN >= 10) +#define HAVE_SIDPLAYFP_2_10 +#endif + struct SidState { sidplayfp *currEng; sidbuilder *currBuilder; @@ -99,11 +104,13 @@ bool xs_sidplayfp_init() return false; } +#ifndef HAVE_SIDPLAYFP_2_10 state.currBuilder->filter(xs_cfg.emulateFilters); if (!state.currBuilder->getStatus()) { AUDERR("reSID->filter(%d) failed.\n", xs_cfg.emulateFilters); return false; } +#endif config.sidEmulation = state.currBuilder; @@ -139,6 +146,13 @@ bool xs_sidplayfp_init() return false; } +#ifdef HAVE_SIDPLAYFP_2_10 + /* Call filter() after config() to have an effect */ + state.currEng->filter(0, xs_cfg.emulateFilters); + state.currEng->filter(1, xs_cfg.emulateFilters); + state.currEng->filter(2, xs_cfg.emulateFilters); +#endif + /* Load ROMs */ VFSFile kernal_file("file://" SIDDATADIR "/sidplayfp/kernal", "r"); VFSFile basic_file("file://" SIDDATADIR "/sidplayfp/basic", "r");