Commit Graph

48 Commits

Author SHA1 Message Date
Hay1tsme 9715a788bf add hooklib for external functions loaded via getprocaddress 2022-12-11 06:22:00 -05:00
Hay1tsme 5a5ffee819 mercury: fix coin counter (thanks Raki!) 2022-11-18 16:37:48 -05:00
Hay1tsme 194ee1a1ce Merge branch 'gfx' of https://dev.s-ul.net/Felix/segatools 2022-02-10 11:31:22 -05:00
Hay1tsme 99068f4fb3 removed prints, added phantom device 2021-12-30 00:51:44 -05:00
Hay1tsme 7473791db2 added setupapi hook to elisabeth 2021-12-29 21:58:00 -05:00
Felix Anderson dc715baa55
gfxhook: Fix some clang-tidy warnings 2021-12-22 11:31:22 -05:00
Felix Anderson ea94dd8085
wip: move gfx to gfxhook, some borderless window stuff 2021-11-03 17:14:24 +00:00
Felix Anderson a24cd0a1a5
Draft: hooklib/gfx/dxgi.c: Delegate IDXGIFactory hook selection to helper method 2021-10-25 22:00:20 +00:00
Felix Anderson 636ed0f41b
Draft: hooklib/gfx/dxgi.c: Add CreateDXGIFactory2 hook 2021-10-25 22:00:20 +00:00
Felix Anderson f251283eb6
hooklib: Add D3D11 and DXGI graphics hooks
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).
2021-10-25 22:00:20 +00:00
Felix Anderson 5a383b804b hooklib/dll.c: Ensure LoadLibraryExW is always available 2021-08-15 23:08:18 +00:00
Felix Anderson dd363ed000 hooklib/dll.c: Add LoadLibraryEx hooks
- Initial D: Zero uses `LoadLibraryExW` to load `d3d11.dll` and `dxgi.dll`.
2021-08-15 23:08:18 +00:00
Felix Anderson 25f5ca944e
hooklib/path.c: Hook RemoveDirectory
- A certain game uses RemoveDirectory to clear out some data in the Y:
2021-08-12 23:20:05 +00:00
Bemani Witch 3a5258a9c9 dvd: move thread safety comment into header file 2021-06-17 04:13:50 +02:00
Bemani Witch f79144edc1 Add dvd hook to allow hiding connected dvd drives 2021-06-17 04:02:55 +02:00
Felix Anderson 88128af7c8
Remove leftover GetProcAddress definition 2021-06-17 01:39:52 +00: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 5410941944 Fix DLL loader hook logic
Seems this was quite buggy in its original form.
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
Bemani Witch 30e1d033c5 Add support for specifing monitor number for dx9 games 2020-06-06 22:27:07 +02:00
Felix Anderson 008d53dd45
hooklib/path.c: hook Ex variants of CreateDirectory 2020-05-21 00:58:24 +00:00
Felix Anderson 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
Felix Anderson 533683e595
hooklib/path.c: add function to hook apply path hooks to another module 2020-05-21 00:58:20 +00:00
Felix Anderson 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
Shiz a31557c5cd hooklib/path.c: add slash-insensitive path comparison API 2019-12-19 08:31:44 +01:00
Shiz 28e9594b98 hooklib/path.c: add support for FindFirstFile{A,W} 2019-12-18 20:23:35 +01:00
Will Toohey e15a61a7d0 Allow dns hook to fail a resolve and add domains
This lets people with crap ISPs that resolve domains
that they shouldn't to use the game without
changing their DNS server
2019-11-17 15:08:25 +10:00
Sam Sun 33621dd1e8 Fix build on msbuild 2019-11-09 15:44:46 -07:00
Tau 8485879ff7 hooklib: Shift config structs around 2019-11-05 19:31:51 -05:00
Tau 06df306c52 Fix some dprintf() message prefixes 2019-11-03 09:44:40 -05:00
Tau 46e5c6127d Fix function pointer calling convention syntax
Fixes MSVC build
2019-11-03 08:36:37 -05:00
Tau b270eaf1c6 hooklib/gfx.c: Add option to frame the d3d window 2019-10-19 17:05:09 -04:00
Tau 7c721aa1f8 hooklib/gfx.c: Wire up gfx config 2019-10-19 17:05:02 -04:00
Tau 871b82a8ad hooklib/config.c: Add struct gfx_config 2019-10-19 17:03:17 -04:00
Tau dfcf3d8bd1 hooklib/spike.c: Add a measure of configurability 2019-10-19 16:15:14 -04:00
Tau e918795445 Make clock hook configurable 2019-10-14 23:18:18 -04:00
Tau 2864d22df2 hooklib/dns.c: Hook classic getaddrinfo() API too 2019-09-07 16:26:10 -04:00
Tau 697c6c6893 hooklib/dns.c: Fix locking 2019-09-07 16:25:44 -04:00
Tau 63729cc95e hooklib/dns.c: Delineate declarations 2019-09-07 16:25:12 -04:00
Tau 3902757427 hooklib/path.c: Hook FindFirstFileEx 2019-09-04 13:47:31 -04:00
Tau 8ecbb860d8 hooklib/dns.c: Add initial WinDNS hook
We'll probably need to intercept the more traditional
gethostbyname() API and friends at some point too.
2019-09-04 13:47:31 -04:00
Tau 05e4dda8e6 Add missing <assert.h> includes
Fixes non-PCH build.
2019-09-01 11:48:14 -04:00
Tau 94005de9e9 hooklib/clock.c: Split clock read and write hooks 2019-08-21 12:54:10 -04:00
Tau 943c4e41c0 hooklib/reg.c: Don't log read accesses
Output volume there is a little much.
2019-05-28 17:13:26 -04:00
Tau 744a7e6560 hooklib/path.c: Add initial path rewriting hooks 2019-05-17 23:07:20 -04:00
Tau 2ab3a353df hooklib/reg.c: Add registry hook mechanism 2019-05-17 23:07:20 -04:00
Tau 96b1981e01 hooklib/dll.c: Add dynamic loader hook mechanism 2019-05-14 17:13:08 -04:00
Tau 1b93551a41 hooklib: Split out of util
This is distinct from capnhook's hooklib, although the intent is
the same. Hopefully these two libraries sharing a name won't get
too confusing...
2019-05-14 17:13:08 -04:00