I've noticed that at some point the mupen64plus.cfg file gets parameters added with the controller automatic setting feature. Would it interfere with anything if my frontend in response to there being no parameters in the .cfg file ran the following code:
m64p_handle InputSDLControl = NULL;
ConfigOpenSection(section.c_str( ), &InputSDLControl);
ConfigSetDefaultBool(InputSDLControl, "plugged", 0, "Specifies whether this controller is 'plugged in' to the simulated N64");
ConfigSetDefaultInt(InputSDLControl, "plugin", 1, "Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak");
ConfigSetDefaultBool(InputSDLControl, "mouse", 0, "If True, then mouse buttons may be used with this controller");
ConfigSetDefaultInt(InputSDLControl, "device", -1, "Specifies which joystick is bound to this controller: -2=Keyboard/mouse, -1=Auto config, 0 or more= SDL Joystick number");
ConfigSetDefaultString(InputSDLControl, "AnalogDeadzone", "4096,4096", "The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.");
ConfigSetDefaultString(InputSDLControl, "AnalogPeak", "32768,32768", "An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value");
ConfigSetDefaultString(InputSDLControl, "DPad R", "", "");
ConfigSetDefaultString(InputSDLControl, "DPad L", "", "");
ConfigSetDefaultString(InputSDLControl, "DPad D", "", "");
ConfigSetDefaultString(InputSDLControl, "DPad U", "", "");
ConfigSetDefaultString(InputSDLControl, "Start", "", "");
ConfigSetDefaultString(InputSDLControl, "Z Trig", "", "");
ConfigSetDefaultString(InputSDLControl, "B Button", "", "");
ConfigSetDefaultString(InputSDLControl, "A Button", "", "");
ConfigSetDefaultString(InputSDLControl, "C Button R", "", "");
ConfigSetDefaultString(InputSDLControl, "C Button L", "", "");
ConfigSetDefaultString(InputSDLControl, "C Button D", "", "");
ConfigSetDefaultString(InputSDLControl, "C Button U", "", "");
ConfigSetDefaultString(InputSDLControl, "R Trig", "", "");
ConfigSetDefaultString(InputSDLControl, "L Trig", "", "");
ConfigSetDefaultString(InputSDLControl, "Mempak switch", "", "");
ConfigSetDefaultString(InputSDLControl, "Rumblepak switch", "", "");
ConfigSetDefaultString(InputSDLControl, "X Axis", "", "");
ConfigSetDefaultString(InputSDLControl, "Y Axis", "", "");