Commit Graph

303 Commits

Author SHA1 Message Date
Tau
df5f08314b Add API versioning scheme to aimeio 2021-06-13 11:27:00 -04:00
Tau
f59f4ec8c1 Document the aimeio API
This is de-facto a published API now so we have to support it.
2021-06-13 11:27:00 -04:00
Tau
1750f85f51 Drop aime_io_fini
This isn't used, and due to the way that the hook machinery works
it is not likely to come into use later on either. Since we can't
rely on existing implementations actually being correct, if it does
somehow start being used then we will need to advance the aimeio API
version in order to support it.
2021-06-13 11:27:00 -04:00
Tau
90d908fe07 Statically link current aimeio implementation 2021-06-13 11:27:00 -04:00
Tau
e57aeb03c3 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
c71ff1bcb5 Add module DEF file for chunihook 2021-06-13 11:27:00 -04:00
Tau
872ae9ca50 Fix Diva slider startup 2021-06-13 11:27:00 -04:00
Tau
49595d2c37 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
5410941944 Fix DLL loader hook logic
Seems this was quite buggy in its original form.
2021-06-13 11:27:00 -04:00
Tau
9543bd183d Whitespace fix 2021-06-13 11:27:00 -04:00
Tau
1627a0c850 Delete draft debris that was never used 2021-06-13 11:27:00 -04:00
Tau
eb2383187a 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
27ec081ca7 Add another build option for Windows using Docker Desktop to README 2021-05-28 22:40:15 +02:00
icex2
12ee51d198 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
5a376836a8 Add instructions to build on Windows using WSL2 and docker 2021-05-28 21:39:37 +02:00
icex2
a051faebdb Extend .dockerignore, ignore git related stuff 2021-05-28 20:55:47 +02:00
icex2
0a2cb705fb Overhaul root readme
Provide a more user/developer-friendly entry point to the project
2021-04-10 15:04:28 +02:00
icex2
fe5d9c4f40 Fix headline levels, first level needs to denote root of doc 2021-04-10 15:03:49 +02:00
icex2
85f53fbbb5 doc: Add doc for chunihook
Stolen from various threads from our favorite place
2021-04-10 15:02:39 +02:00
icex2
411dbd5696 Update .gitignore, ignore single build/ output dir 2021-04-10 15:02:06 +02:00
icex2
92a36aab11 Remove now obsolete mkdist script, part of Package.mk now 2021-04-10 15:01:53 +02:00
icex2
686c0102a8 Add Dockerfile for building in docker
Make build environment (kinda) independent of the current machine
2021-04-10 15:01:12 +02:00
icex2
921b976f2e 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
d2996c5271 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
seika1
2432b32338 eeprom: fill in actual geometry 2021-02-13 15:51:16 -05:00
840dd3f3df mkdist: set correct shebang 2021-02-09 01:24:46 +01:00
Shiz
76e5f9c3ee doc: fix ACA2 description and document ACA4 board type 2020-08-07 16:49:09 +02:00
Bemani Witch
30e1d033c5 Add support for specifing monitor number for dx9 games 2020-06-06 22:27:07 +02:00
Karl
82416115f5 divaio: Wire up input config 2020-06-06 15:56:35 -04:00
Karl
164c74f160 divaio: Add config 2020-06-06 15:56:35 -04:00
Karl
7949f54b30 Fix instructions in README.md 2020-06-06 15:56:35 -04:00
Tau
187eabe225 Document common INI settings 2020-06-06 11:14:46 -04:00
008d53dd45
hooklib/path.c: hook Ex variants of CreateDirectory 2020-05-21 00:58:24 +00:00
4343177e42
platform/amvideo.c: remove left-over brace from debug messages 2020-05-21 00:58:24 +00:00
e5b0603722
board/io4.c: add system status fix for Ongeki 2020-05-21 00:58:24 +00:00
776cf50bd0
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
c037dd73e4
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
86f2717316
mu3hook/dllmain.c: initialize graphics hook 2020-05-21 00:58:23 +00:00
a1f093a317
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
533683e595
hooklib/path.c: add function to hook apply path hooks to another module 2020-05-21 00:58:20 +00:00
00819a2721
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
dogtopus
356e8ae20c Unify LED command name for Diva/Chunithm slider 2019-12-29 22:48:35 -04:00
dogtopus
300338220a Style fixes 2019-12-29 22:20:54 -04:00
dogtopus
01e1e1a7b8 Diva: Fix slider detection & sensor order 2019-12-29 21:13:40 -04:00
dogtopus
0c74d64d5c divahook: Add an option to disable slider emulation 2019-12-29 13:28:32 -04:00
Tau
f732eb05a8 Add CHANGELOG 2019-12-28 11:16:06 -05:00
Tau
34ad466df2 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
Shiz
9137a36a53 platform/vfs.c: allow relative paths in configuration 2019-12-22 22:41:08 +01:00
Shiz
ad24fe10bb 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
Shiz
0d8dd05ceb 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