Processing sharepath in SConf is incorrect, because targets can share a
build directory (and therefore an SConf run), but not share a sharepath.
Move sharepath handling out of SConf. Move DXX_USE_SHAREPATH handling
from CGameArg to GameArg, since one game can be built with a sharepath
while the other is built without.
- Raise the player limit to 8.
- Remove the logic that forces player counts up/down when switching
between cooperative and deathmatch game modes.
- Add heuristics to add start positions for the extra players, since
standard maps will not have the required number of starts.
Add experimental support for using ADL MIDI instead of SDL for music
playback. Support for ADL MIDI contributed by Github user jpcima. This
feature is minimally supported by the core Rebirth team, but is included
as a courtesy so that users need not patch in support separately.
Suggested-by: jpcima <https://github.com/dxx-rebirth/dxx-rebirth/pull/408>
Add configuration file entries for number of chips, bank index, and
whether to use ADL MIDI. Currently, there is no GUI for this.
Interested users must enable it via direct configuration file editing.
A menu interface will come later.
- Use the Windows type `HMODULE` on Windows, and define a local alias to
it on non-Windows. This makes the code slightly clearer about the
nature of the value `handle`.
- Move the `dlopen` emulation into the anonymous namespace to encourage
inlining, since the wrappers are trivial name/signature compatibility
functions.
- Move the error reporting out of the template function, so that it is
not redundantly instantiated for each type used with the template.
Global data will default to nullptr, so the initialization is
unnecessary. Some compilers may store the pointer in `.data` when it is
initialized to any value.