# HG changeset patch # User Matti Hamalainen # Date 1234178612 -7200 # Node ID 06db79680afe012b9ab859b94a4e1e6a316fa929 # Parent f82e0adf19f0b565e4903059530e3d0d557bf024 Added new variables for distortion tunables and made few changes to SID1 filter variables too. diff -r f82e0adf19f0 -r 06db79680afe src/xs_config.c --- a/src/xs_config.c Mon Feb 09 11:14:18 2009 +0200 +++ b/src/xs_config.c Mon Feb 09 13:23:32 2009 +0200 @@ -94,9 +94,9 @@ { CTYPE_BOOL, &xs_cfg.mos8580, "mos8580" }, { CTYPE_BOOL, &xs_cfg.forceModel, "forceModel" }, { CTYPE_BOOL, &xs_cfg.emulateFilters, "emulateFilters" }, -{ CTYPE_FLOAT, &xs_cfg.sid1FilterFs, "filterFs" }, -{ CTYPE_FLOAT, &xs_cfg.sid1FilterFm, "filterFm" }, -{ CTYPE_FLOAT, &xs_cfg.sid1FilterFt, "filterFt" }, +{ CTYPE_FLOAT, &xs_cfg.sid1Filter.fs, "filterFs" }, +{ CTYPE_FLOAT, &xs_cfg.sid1Filter.fm, "filterFm" }, +{ CTYPE_FLOAT, &xs_cfg.sid1Filter.ft, "filterFt" }, { CTYPE_INT, &xs_cfg.memoryMode, "memoryMode" }, { CTYPE_INT, &xs_cfg.clockSpeed, "clockSpeed" }, { CTYPE_BOOL, &xs_cfg.forceSpeed, "forceSpeed" }, @@ -166,9 +166,9 @@ { WTYPE_BGROUP, CTYPE_INT, "cfg_emu_sp2_hardsid", &xs_cfg.sid2Builder, XS_BLD_HARDSID }, { WTYPE_BUTTON, CTYPE_BOOL, "cfg_emu_filters", &xs_cfg.emulateFilters, 0 }, -{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_fs", &xs_cfg.sid1FilterFs, 0 }, -{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_fm", &xs_cfg.sid1FilterFm, 0 }, -{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_ft", &xs_cfg.sid1FilterFt, 0 }, +{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_fs", &xs_cfg.sid1Filter.fs, 0 }, +{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_fm", &xs_cfg.sid1Filter.fm, 0 }, +{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_sp1_filter_ft", &xs_cfg.sid1Filter.ft, 0 }, { WTYPE_BUTTON, CTYPE_BOOL, "cfg_maxtime_enable", &xs_cfg.playMaxTimeEnable, 0 }, { WTYPE_BUTTON, CTYPE_BOOL, "cfg_maxtime_unknown", &xs_cfg.playMaxTimeUnknown, 0 }, @@ -222,9 +222,9 @@ /* Filter values */ xs_cfg.emulateFilters = TRUE; - xs_cfg.sid1FilterFs = XS_SIDPLAY1_FS; - xs_cfg.sid1FilterFm = XS_SIDPLAY1_FM; - xs_cfg.sid1FilterFt = XS_SIDPLAY1_FT; + xs_cfg.sid1Filter.fs = XS_SIDPLAY1_FS; + xs_cfg.sid1Filter.fm = XS_SIDPLAY1_FM; + xs_cfg.sid1Filter.ft = XS_SIDPLAY1_FT; #ifdef HAVE_SIDPLAY2 xs_cfg.playerEngine = XS_ENG_SIDPLAY2; @@ -491,8 +491,8 @@ /* Header */ fprintf(outFile, - "; SIDPlay2 compatible filter definition file\n" - "; Exported by " PACKAGE_STRING "\n\n"); + "; SIDPlay2 compatible filter definition file\n" + "; Exported by " PACKAGE_STRING "\n\n"); /* Write each filter spec in "INI"-style format */ for (n = 0; n < nFilters; n++) { diff -r f82e0adf19f0 -r 06db79680afe src/xs_config.h --- a/src/xs_config.h Mon Feb 09 11:14:18 2009 +0200 +++ b/src/xs_config.h Mon Feb 09 13:23:32 2009 +0200 @@ -68,13 +68,28 @@ typedef struct { + gchar *name; gint type; xs_int_point_t points[XS_SIDPLAY2_NFPOINTS]; gint npoints; - gchar *name; + + /* Distortion patch tunables */ + gfloat rate, point, voice_nonlinearity, cf_treshold; + + /* Filter Type 3 tunables */ + gfloat baseresistance, offset, steepness, + minimumfetresistance; + + /* Filter Type 4 tunables */ + gfloat k, b; } xs_sid2_filter_t; +typedef struct { + gfloat fs, fm, ft; +} xs_sid1_filter_t; + + extern struct xs_cfg_t { /* General audio settings */ gint audioBitsPerSample; @@ -94,9 +109,7 @@ gint playerEngine; /* Selected player engine */ gboolean emulateFilters; - gfloat sid1FilterFs; - gfloat sid1FilterFm; - gfloat sid1FilterFt; + xs_sid1_filter_t sid1Filter; gint sid2OptLevel; /* SIDPlay2 emulation optimization */ gint sid2Builder; /* SIDPlay2 "builder" aka SID-emu */ diff -r f82e0adf19f0 -r 06db79680afe src/xs_sidplay1.cc --- a/src/xs_sidplay1.cc Mon Feb 09 11:14:18 2009 +0200 +++ b/src/xs_sidplay1.cc Mon Feb 09 13:23:32 2009 +0200 @@ -228,9 +228,9 @@ /* if (xs_cfg.forceModel) */ myEngine->currConfig.mos8580 = xs_cfg.mos8580; myEngine->currConfig.emulateFilter = xs_cfg.emulateFilters; - myEngine->currConfig.filterFs = xs_cfg.sid1FilterFs; - myEngine->currConfig.filterFm = xs_cfg.sid1FilterFm; - myEngine->currConfig.filterFt = xs_cfg.sid1FilterFt; + myEngine->currConfig.filterFs = xs_cfg.sid1Filter.fs; + myEngine->currConfig.filterFm = xs_cfg.sid1Filter.fm; + myEngine->currConfig.filterFt = xs_cfg.sid1Filter.ft; /* Now set the emulator configuration */