Initial contribution by Vincent Kocks. Script simplified to fit the
new build setup with a common build/ folder. Build folder can
be deleted on every invocation because it will just be copied
from the docker container anyway.
Co-authored-by: Vincent Kocks <engineering@vingenuity.net>
- 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`.
- If the Unity `LoadLibraryW` hook is done too early, then it somehow
interferes with the other DLL and hook table IAT hooks. Workaround
this by moving the Unity `LoadLibraryW` hook initialization after all
other hooks are done.
- Also, correct the platform ID to the ALLS HX
- Unity loads plugin DLLs and Mono dynamically.
- Ongeki uses Criware for videos so hook the Criware plugin DLL so the
path hooks load the videos from the hooked paths.
Some distributions of MinGW, recent builds included, require
`MINGW_HAS_SECURE_API` to be defined in order to expose `_s` variants of
functions, as defined by Annex K of the C standard, in the headers.
Omitting this definition leads to a bunch of compiler warnings clobbering
the build output, as well as possibly incorrect inference of argument and
return types by the compiler.
It needs to be set to `1` as opposed to simply defined as per
https://sourceforge.net/p/mingw-w64/bugs/714/.
Optional for now, since not all games or configurations may need it.
It may be better eventually to refactor hooklib/path.c to allow for
static path remapping, to minimize boilerplate code around the functions.
The default value being commented out is no doubt a great source
of confusion whenever somebody attempts to edit it without
realizing that it is a comment.