IDZ only supports D3D11 and Ongeki/Unity uses D3D11 by default.
This also includes a window hook and fullscreen fix for problematic
games (I am looking at you IDZ).
These never get called at the moment, so we have no way of
guaranteeing that any existing implementations are even correct. If
we do decide to start emulating the coin blocker then we will need
to advance the API versions, which will (hopefully) force any
third-party devs to test their coin blocker code before opting in.
This change deletes the GetProcAddress hook and exports symbols
corresponding to the hooked functions from each hook DLL instead;
we stop at redirecting LoadLibrary/GetModuleHandle calls to the
hook DLL. This simplified approach has less hidden magic going on
behind the scenes and is more readily composable (i.e. a hook DLL
can export redirect symbols for more than one dynamically-loaded
DLL).
Returning from the EXE PE entry point merely terminates the main
thread and leaves the process hanging. We need to explicitly exit
from the process since the NTDLL RTL Start code won't do it for us.
- This allows AMLib (in Chunithm and other games) to successfully
initialize without requiring the game to be run as Administrator on
first boot to create `C:\Users\AppUser\temp`.
The Chunithm slider has sixteen cells and fifteen (I think?)
vertical lines splitting the cells. Diva does not have these lines,
so presumably the LED data format is different. Need to analyze
this further.
SEGA games are unplayable between 03:00 and 07:00 local time due
to a network maintenance period that is hard-coded into the games
themselves (no, guest play is not available).
Deal with this by slowing down time to avoid 02:00 (the time when
a warning appears and new credits eventually start being rejected),
then jump forward to sync up with real time when 07:00 hits.