Commit Graph

299 Commits

Author SHA1 Message Date
Tau
45e2416702 Simplify DLL hook mechanism
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).
2021-06-13 11:27:00 -04:00
Tau
b4cd868f85 Add module DEF file for chunihook 2021-06-13 11:27:00 -04:00
Tau
fab50e5e34 Fix Diva slider startup 2021-06-13 11:27:00 -04:00
Tau
972b3a5de8 Fix hook startup failure path
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.
2021-06-13 11:27:00 -04:00
Tau
1d6b7591ef Fix DLL loader hook logic
Seems this was quite buggy in its original form.
2021-06-13 11:27:00 -04:00
Tau
d9d206a160 Whitespace fix 2021-06-13 11:27:00 -04:00
Tau
81f90981b4 Delete draft debris that was never used 2021-06-13 11:27:00 -04:00
Tau
5ee0bb2afb Suppress vscode auto-format for the time being
Eventually we would like to set up clang-format rules and enforce
them from CI.
2021-06-13 11:27:00 -04:00
icex2
c1242f1f45 Add another build option for Windows using Docker Desktop to README 2021-05-28 22:40:15 +02:00
icex2
de829d3b8c Add docker-build.bat for building on Windows with Docker Desktop
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>
2021-05-28 22:40:04 +02:00
icex2
aecd7aa749 Add instructions to build on Windows using WSL2 and docker 2021-05-28 21:39:37 +02:00
icex2
8fcea92271 Extend .dockerignore, ignore git related stuff 2021-05-28 20:55:47 +02:00
icex2
76dbbdd665 Overhaul root readme
Provide a more user/developer-friendly entry point to the project
2021-04-10 15:04:28 +02:00
icex2
7db3d4af47 Fix headline levels, first level needs to denote root of doc 2021-04-10 15:03:49 +02:00
icex2
7e97eb9d13 doc: Add doc for chunihook
Stolen from various threads from our favorite place
2021-04-10 15:02:39 +02:00
icex2
1b1f64486f Update .gitignore, ignore single build/ output dir 2021-04-10 15:02:06 +02:00
icex2
27793dcc48 Remove now obsolete mkdist script, part of Package.mk now 2021-04-10 15:01:53 +02:00
icex2
4ea9e6ffb6 Add Dockerfile for building in docker
Make build environment (kinda) independent of the current machine
2021-04-10 15:01:12 +02:00
icex2
b01bbf1658 Add Makefile with easy to use targets for building and dist packaging
Similar to what we used on other projects. Makes the build process
more streamlined
2021-04-10 15:00:16 +02:00
fffc737df2 chunihook: Explicitly load dbghelp.dll so path hooks apply to it
- 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`.
2021-02-13 15:53:40 -05:00
e76cd2ec3a63f11710dc9fa0bc5b66176521af0a
b73ded3597 eeprom: fill in actual geometry 2021-02-13 15:51:16 -05:00
6cb1008cabfc0d4485696f6df7431a5e27604e1b
0152ede6f0 mkdist: set correct shebang 2021-02-09 01:24:46 +01:00
888be1df7c6f962725a28a172a5394eec3e228e7
bc57f7fe33 doc: fix ACA2 description and document ACA4 board type 2020-08-07 16:49:09 +02:00
85be42b2ce67a8e34b32793360824b056c0c2444
43428a6502 Add support for specifing monitor number for dx9 games 2020-06-06 22:27:07 +02:00
9c2a94eb294ac460ccbd019f5f01f45fffff7759
1e2788795c divaio: Wire up input config 2020-06-06 15:56:35 -04:00
9c2a94eb294ac460ccbd019f5f01f45fffff7759
415b06af7c divaio: Add config 2020-06-06 15:56:35 -04:00
9c2a94eb294ac460ccbd019f5f01f45fffff7759
11a656ef9d Fix instructions in README.md 2020-06-06 15:56:35 -04:00
Tau
c7912c93a3 Document common INI settings 2020-06-06 11:14:46 -04:00
eef0f74ac0 hooklib/path.c: hook Ex variants of CreateDirectory 2020-05-21 00:58:24 +00:00
bd1e893b7a platform/amvideo.c: remove left-over brace from debug messages 2020-05-21 00:58:24 +00:00
ce46262c00 board/io4.c: add system status fix for Ongeki 2020-05-21 00:58:24 +00:00
c7a4c66419 mu3hook/dllmain.c: fix hook initialization order to fix path hook
- 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
2020-05-21 00:58:24 +00:00
8607faea7f hooklib/gfx.c: add dynamic DLL hook on d3d9.dll
- Somehow doing `dll_hook_push` on `d3d9.dll` fixes the path hooks for
  Ongeki's `mu3.exe`
2020-05-21 00:58:23 +00:00
7a51533194 mu3hook/dllmain.c: initialize graphics hook 2020-05-21 00:58:23 +00:00
20d5d480fb mu3hook/unity.c: hook Unity plugin DLLs
- 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.
2020-05-21 00:58:23 +00:00
8bde573bdd hooklib/path.c: add function to hook apply path hooks to another module 2020-05-21 00:58:20 +00:00
8108ec2130 platform/vfs.c: allow nthome and option path hooks without ending back-slash
- This actually fixed option loading.

- Ongeki uses forward-slashes for Y:/SDDT/log
2020-05-20 18:09:23 +00:00
5d3b9130281102eb36519ddd0a2c6868ff061a3b
901cedce89 Unify LED command name for Diva/Chunithm slider 2019-12-29 22:48:35 -04:00
5d3b9130281102eb36519ddd0a2c6868ff061a3b
16094c0720 Style fixes 2019-12-29 22:20:54 -04:00
5d3b9130281102eb36519ddd0a2c6868ff061a3b
180dc3378a Diva: Fix slider detection & sensor order 2019-12-29 21:13:40 -04:00
5d3b9130281102eb36519ddd0a2c6868ff061a3b
d32f6ab18b divahook: Add an option to disable slider emulation 2019-12-29 13:28:32 -04:00
Tau
37252be684 Add CHANGELOG 2019-12-28 11:16:06 -05:00
Tau
d98dc984f3 aimeio: Fix INI loading
Got bitten by the win32 INI API's handling of relative paths again.
2019-12-25 16:29:01 -05:00
888be1df7c6f962725a28a172a5394eec3e228e7
b8c960b526 platform/vfs.c: allow relative paths in configuration 2019-12-22 22:41:08 +01:00
888be1df7c6f962725a28a172a5394eec3e228e7
5a57a409a1 build: enable "secure" CRT headers on MinGW
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/.
2019-12-22 21:55:55 +01:00
888be1df7c6f962725a28a172a5394eec3e228e7
e97f6b5d8d platform/vfs.c: add option path redirection
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.
2019-12-22 18:27:19 +01:00
888be1df7c6f962725a28a172a5394eec3e228e7
54cd2f6e9a hooklib/path.c: add slash-insensitive path comparison API 2019-12-19 08:31:44 +01:00
888be1df7c6f962725a28a172a5394eec3e228e7
03c7954ada hooklib/path.c: add support for FindFirstFile{A,W} 2019-12-18 20:23:35 +01:00
Tau
e62957c4d5 Add INI comments for Chunithm IO config 2019-11-27 21:14:44 -05:00
Tau
b799f9f446 Simplify configurable GetAsyncKeyState
Setting the VK code to zero effectively disables these anyway.
2019-11-27 21:02:51 -05:00