Commit Graph

32 Commits

Author SHA1 Message Date
Felix Anderson ea94dd8085
wip: move gfx to gfxhook, some borderless window stuff 2021-11-03 17:14:24 +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
Tau 94e9edb5a0 Load and bind chuniio at runtime 2021-06-13 11:27:01 -04:00
Tau 92b73df3e7 Load and bind aimeio at runtime 2021-06-13 11:27:01 -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 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
Felix Anderson 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
Tau a87b8f72fa Abort hook DLLs on startup error 2019-11-05 18:03:24 -05:00
Tau dfc1e13397 cardhook: Fold back into chunihook
And so the cycle goes on.
2019-11-03 15:38:15 -05:00
Tau 0e1cfb66db Improve JVS bus life cycle handling 2019-11-03 13:01:38 -05:00
Tau 3d6669dff1 platform: Re-fuse Nu and ALLS platforms
There's basically no difference at the platform level except for
the addition of the ALLS PCBID hook, which is harmless on Nu.
2019-11-03 09:52:33 -05:00
Tau d31d13e0da chunihook/slider.c: Add config 2019-10-19 20:37:43 -04:00
Tau 7c721aa1f8 hooklib/gfx.c: Wire up gfx config 2019-10-19 17:05:02 -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 94005de9e9 hooklib/clock.c: Split clock read and write hooks 2019-08-21 12:54:10 -04:00
Tau d19b44e3a7 Revert "chunihook: Subsume cardhook"
This reverts commit c69a09ead4323e33e4b6a867bba6c0fe58b77af0.
2019-08-20 13:13:20 -04:00
Tau b44b62fc72 chunihook: Subsume cardhook
One less DLL floating around.
2019-06-09 15:42:20 -04:00
Tau dff71b530a chunihook/config.c: Consolidate config 2019-05-18 00:00:57 -04:00
Tau 5722061cbf platform: Wire up configuration 2019-05-18 00:00:57 -04:00
Tau 6d933eb8f4 amex/config.c: Rename from cfg.c
Easier to type and more consistent with its identifiers.
2019-05-17 23:07:20 -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
Tau c19d140589 Wire up libamex config 2019-05-04 14:50:33 -04:00
Tau 364267ba66 Use amex_hook_init() 2019-05-04 12:04:53 -04:00
Tau 5e823a9e22 Rename slider-hook files to slider 2019-05-03 15:59:51 -04:00
Tau 46ab6c3d96 chuniio: Break out Chunithm IO DLL 2019-05-03 14:46:58 -04:00
Tau bc297b2480 Split libnu into libplatform, libamex
Going to add some ALLS stuff to libplatform and the ALLS hardware
does not contain an AMEX board.
2019-03-04 17:22:38 -05:00
Tau 51994d59ff Combine both clock hooks
Turns out the clock skew doesn't really work unless RTC and TZ
changes are blocked as well.
2018-11-23 14:23:16 -05:00
Tau 9f43f9f397 Hoist slider from board into chunihook
Diva slider uses the quasi-JVS framing used by all other SEGA
boards, the Chunithm slider is a special case.
2018-11-20 20:33:17 -05:00
Tau 9c83a38208 util/clock.c: Apply clock skew
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.
2018-11-20 20:33:17 -05:00
Tau 9614185511 util/spike.c: Use different filenames for each DLL
Might want to hook Chunithm and the card reader satellite process
side by side for instance.
2018-11-20 20:33:17 -05:00
Tau c1dee321f3 chunihook/dllmain.c: Wire up Chunithm hook DLL 2018-11-20 20:33:17 -05:00