Adding condition to CoreTiming state function

because ev->type might be undefined in MODE_READ
Adding CLI mode to GUI build etc.

Open

Adding option to open a state or movie. (A movie could previously be started but not through open)

When opening a state or movie the ISO is selected by ID rather than last used because that's more accurate

Disable the Play and Start Recording options if no ISO is set instead of showing the BrowseForDirectory dialog because that's less confusing

The BootManager is changed to try the default and last iso if an empty string is provided

If a file isn't found the ISO library is searched because that allow a relative path

Benchmark

Adding option to play a movie as a benchmark by running it without a frame limit and measure the frame rate

Name

Changing the nogui suffix to cli because it's a more common term
Adding config path argument

because that allow easier benchmark for different settings
Writing file name in file error

because that makes it easier to locate the problem
Adding state version check when loading state

because it should be checked before boot
Loading log settings for CLI

because that allow disabling logs for CLI
Logging to OutputDebugString when the process is not debugged too

because the message can be read in DebugView which can be more efficient than reading it in the program's log window

Writing OSD messages to LogManager too because that make the message (f.e. about state version)

* permanent (for future reference) rather than temporary
* visible to CLI mode if it occurs before window creation
Adding tick log to movie playback

because that allow determining synchronisation
Making the emulated Wii input equally deterministic as GC input

because that allow recording GC and Wii input simultaneously
Reading peak shake force from calibration rather than a constant

because that allow maximum force regardless of calibration