DSP: Use completion event for ARAM interrupt
DSP: General cleanup. No behaviour change.
Removed warnings by explicitly casting to `u8` for controllers
JIT64: faster implementation of mfcr
JIT64: faster + branchless crxxx
JIT64: faster implementation of mtcrf and mcrxr
Fixed depth matrix shaders in OpenGL and Direct3D to be more precise. Fixes some graphical glitches in some games.
Merge pull request #823 from KScorp/depthmatrixshaders

Fixed depth matrix shaders in OpenGL and Direct3D to be more precise.
Fixes PP-shaders on !Mesa targets.

Seems mesa has a quirk where
define THING(x) (#x)
is the same as
define THING(x) (##x)

Didn't realize I messed it up since it just worked since I only tested on Mesa.
Merge pull request #827 from Sonicadvance1/fix-pp-config

Fixes PP-shaders on !Mesa targets.
Add Common/Event.h to the VS project files.
Add Common::Event::WaitFor(), which has the same semantics as std::condition_variable::wait_for() (with millisecond units).
Rewrite raw memcard threading code. Intended to fix issue 7484.

EXI memcard code now doesn't know specifics of how data is flushed to whatever backing storage is used.
GC raw memcard now flushes every 15 seconds if dirty, and on memcard destruction.
GCI folder now flushes only on memcard destruction.
Merge pull request #778 from shuffle2/fix-memcard-flush

Rewrite raw memcard threading code. Fixes issue 7484.
Qualcomm fixed screen rotation in their latest v66 development drivers.

The framebuffer is no longer rotated the wrong way around in Qualcomm's latest development drivers.
They did something right, only took them over a year.
Merge pull request #829 from Sonicadvance1/qualcomm-fixed-rotation

Qualcomm fixed screen rotation in their latest v66 development drivers.
Windows: Enable /Zc:rvalueCast solution-wide.
Merge pull request #830 from shuffle2/msvc-rvalueCast

Windows: Enable /Zc:rvalueCast solution-wide.
JIT: cleanup unnecessary immedate size-checking logic

We do this in the emitter now, so this code isn't needed anymore.
Merge pull request #803 from ChuckRozhon/cast_from_double_to_u8_warnings

Removed warnings by explicitly casting to `u8` for controllers