Adding copy ini section function

Fix: Don't require trailing newline in inifile
Adding color option to OSD::DrawMessages
GCPad: adds radius setting to gcpad

adds radius setting to gcpad

updates analog stick graphics

the optimal radius is directly outside the padclamp() values

source: pad docs, available from google search
adds game specific wiimote ir settings.

the input config settings are saved in the gameini if a game is running, the base settings are edited when a game is not running.

if a settings is not present in the gameini the base settings in the regular ini file are used instead.

it makes most sense to save input settings per game, if profiles are used it's mostly for different games, so one can see it as an auto loaded profile which doesn't hurt.

in .\Data\User\GameConfig on the git server only the important IR settings are saved, the other settings are left out of those inis.

as a general comment it's curious that almost all games manage to use different calibration, apparently the wiimote sdk doesn't provide default values. the pointer will be way off if the same calibration is used for all games.
added RawInput mouse, for multiple mice support

todo:

add rawinput keyboard
fix InputReference::Detect support

RawInput UpdateOutput is used only when necessary, when requested and the device is used (cursor is moved).

this is because of the necessary SetCursorPos to sync the cursor that can be annoying, even if it doesn't make the cursor jumpy it will alter the mouse sensitivity compared to the windows settings (unless the RawInput mouse sensitivity is set to match the windows mouse sensitivity) which is annoying too.

replace GUID_SysMouse GetDeviceState with GetCursorPos and GetAsyncKeyState since the presence of WM_INPUT messages means that GUID_SysMouse GetDeviceState is zero.
[m+] added m+ zelda ss code

added sensitivity setting for ir input

exposed relative mouse data in CI
[m+] added roll (m+ y-axis) to the tilt input

connected swing input to the m+ too
[m+] added overall range setting for tilt and swing

added option to disable IR, in m+ games like zelda ss it's not necessary in the game and may interfere with the m+ data. it's probably not possible to attempt to sync the m+ and IR for slow movements (for fast movements it doesn't matter).

made the wiimote dialog non-modal, to tweak settings while playing it's necessary to be able to have it open without blocking the main window

fixed sensitivity setting for non-relative cursor inputs
[m+] separated acc and gyro range and added y-axis acc move in response to the pull up sword from the stone problem in zelda ss, the main problem is that the y-axis acc move is missing, but the m+ gyro is also interfering a lot over the acc values.

changed the ini class to save all settings. default or not. with consideration of the intention to have important settings in the online gameini, so that loading the gamini can't reset all other settings to default, it should just change the settings that are present in the ini. and addressing the problem that a user expects all settings, default settings too, to take hold when a profile or ini is loaded. and in addition it doesn't hurt that all settings are saved in the ini, default or not.

mintor fixes for the free wiimote config dialog. TODO: make the dialog update when a new game is started that loads a new ini, and load the baseini when a game is stopped.
[m+] modified swing to do a thrust, i.e. a directional acceleration that switch to a deceleration

fixes zelda ss shield, stab attack, spin attack, pull out sword of stone
[m+] fix nunchuk acc bug, a bit was missing
[m+] improved m+ cursor accuracy, horizontal cursor is disrupted by ir, ir is therefore hidden at < -0.25 and > 0.25 for m+ and it's better to turn it off altogether ingame to avoid horizontal jumps when the ir goes in and out of visibility, vertical cursor is controller by gyro and accelerometer pitch and will drift back to center unless the acc is pitched, the ir position therefore control pitch too when m+ is active

split ir and gyro sensitivity for better control, the ir sensitivity also applies to the accelerometer vertical pitch from ir data

added modifier key to cursor that allow fast m+ forces when held down

addressed the ui issues with the modeless wiimote dialog

capture mouse added to hotkeys

fixed an array overrun in the thrust class that caused crashes

renamed tilt to rotate, yaw doesn't really fit with the name tilt
[m+ etc] added base modifier key to rotation class to allow better control of the slow and fast gyro state

added show IR modifier to be combined with moves such as the zelda ss stab attack that require a visible IR

some ui fixes

added IsRelative() to CI for neat handling of relative input

both RInput and the m+ support now have a theoretically pleasing implementation and neat integration into the existing classes
[minor] fixes related to previous changes
[CI etc] fixed the DInput disappearance bug
[m+] Fixing red steel 2 sword by emulating rotation g-forces. rotation fast mode yaw and pitch swing the sword.

added rotation option to settle gyro if the wm has been still for a while, the higher Gyro Settle the slower before it settles

various fixes in emu wm code and wm config dlg

rebuild all files to weed out potential /MT .obj files that may be a source of random heap corruption crashes in free.c

m+ logging
Changing input config dialog to be hideable (parentless) and minimizable
Connecting VideoCommon hotkeys to CI

allows customizable hotkeys and access to more input sources such as a gamepad

easier to disable demanding efb options when not needed
Changing gameini inputconfig to copy section from baseini on first use, rather than doing a LoadConfig override. makes previous changes to IniFile::Set and ControllerEmu::ControlGroup::LoadConfig unnecessary and they can therefore be reverted.

fixes to CI and DInput init logic. CI::Init and CI:IsInit waits for init to complete.

VideoConfig hotkey fixes

rename ControlDialog to ControlDiag to match other filenames

moved debugging mode menu option from file to view menu

minor revert i FrameAui

Wiimote logging

linux build fixes
moved Wiimote IR settings to WiimoteFirstUse section to avoid duplicating the same settings in Wiimote1-4

added XFB hotkey. fixed video hotkey settings (broken in last commit because of incorrect use of g_ActiveConfig).