DSx86 Config Manager is - as should be obvious - a configuration manager for the DSx86 emulator by Patrick Aalto.
The utility itself can be downloaded under this link. For an overview of this (rather simple) program, read below.

A little history
Before working on this tool, I've been using Patrick's emulator for about a year (give or take a couple weeks). The major motivation behind the project was the fact that of the two existing configuration managers for DSx86, one was DOS-only, and I found the only existing Windows one to be less than satisfactory in my opinion.

DSx86 only displays an 84-button keyboard. However, I've long since found out that it can accept most - if not all - scan codes associated with 101-key keyboards. The only problem was mapping the right scan codes, which could only be done by manually editing the config file. Amending that and making the config manager's user interface as convenient to use as possible were the key goals I've set to achieve.


Once started, the program will check for a DSx86 configuration file in the current directory. If that is not found, it will prompt you to browse to and select the configuration file you wish to edit. Should you exit that dialog, the program will generate a new configuration with a default set of values (any changes made to it will be stored in the current directory).
The list box in the top left of the window contains all configs found in the loaded file. The default config will always be listed as the first entry, regardless of its' actual position in the file. Selecting a config from the list will load the relevant values for editing.
The four buttons to the right provide basic functionality needed - Save updates the current cofiguration or adds it to the list and writes the changes to the file (note that if you change to a different config without saving, any changes made will be lost!), Revert restores the current configuration to the last stored version, Delete deletes the currently selected configuration (except for the default - it may only be modified, never deleted), and the Sort button arranges all entries after the default alphabetically.

The text box in the middle of the main window edits the current configuration's name. It's worth noting that saving under a different name will NOT replace the currently selected profile, but add a new one under the new name to the file instead. The configuration names have a limit of 8 characters, based on the fact that DOS file names (ie pretty much anything you'll run in DSx86) were restricted to 8 character names and 3 character extensions.

Clicking on the display options on the top screen of the on-screen DS will cycle through the according setting, and checking or unchecking the boxes next to the mouse options on the bottom screen of the on-screen DS will toggle the relevant settins on and off.

Clicking the "LMB" and "RMB" values on the bottom screen of the on-screen DS will open a dialog box showing the DS buttons you can map the mouse action to by clicking on (note that the program will not allow you to map both mouse clicks to the same DS button). Clicking any of the DS buttons or their associated labels in the main screen will open a dialog box showing the keyboard keys you can map the DS button to by clicking on them. Closing either dialog box without choosing a key will return you to the main window with no changes made to the config.

While it is possible to unassign the Left and Right shoulder buttons to use them for scrolling the view in Zoom display mode, you can only do so if the config's default display mode is set to Zoom. Changing the display mode will revert the shoulder button bindings either to values corresponding to the default profile, or if they are set to scrolling there - L to Left Shift and R to Left Control, respectively. Binding one of them to a keyboard button when set to zoom will revert the other accordingly.

Revision History

After a brief e-mail exchange with Patrick, it turns out it's possible to manually switch between configuration profiles. Not sure why I missed that in the first place. The manager has been updated to reflect this.
* Config names can now be up to 10 characters long.
* New overwrite dialog with the option to store the imported configuration under a different name
* The overwrite dialog will propose the next valid unused name after the conflicting profile name.

* Fixed incorrectly set colors in the main manager window UI (System.Desktop to Web.Black for the screens, background color to match the image for the form).

* Added keyboard shortcuts in the main manager window
* TPMXScale and TPMYScale are now supported.

* Button mapping dialogs now recognize all keyboard input correctly, except for the Print Screen button.
* It's no longer possible to create a config with name containing uppercase characters or symbols not present in the DOS character set.
* It's no longer possible to bind D-Pad directions to mouse buttons
* Interface tabs added for global settings and readme
* EMS Size is now supported.
* Log file location can now be changed.
* Profile export and import functionality added.

* Smooth scaling mode added to the list of allowed display modes

* Both button mapping dialogs now accept keyboard input. Note that at the present, the program recognizes the numpad enter as the regular enter key.

* The displayed bindings for Start and Select buttons are no longer swapped after loading a configuration for editing.

* The program's window will become the active window after the user leaves the config file selection dialog (previously that caused it to run in the background)
* The pre-loaded default config values are correctly updated after changing the main configuration.

* The program will no longer crash when creating a new config file from scratch.

* Changes are saved to the user-selected configuration file (previously the new config was stored in the current directory regardless of where the source config was loaded from)
* Deleting the last configuration on the list no longer causes an IndexOutOfBounds exception
* It is no longer possible to save a config with a blank name

Initial release version, posted at DSx86compatibility and sent to Patrick.