Commit Graph

52 Commits

Author SHA1 Message Date
b6f1ca6437 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).
2023-02-13 03:07:37 -05:00
26a69e1ea9 Fix format warnings for HRESULT 2021-06-17 01:39:50 +00:00
Tau
32596acab7 Delete coin blocker exports from IO DLLs
These never get called at the moment, so we have no way of
guaranteeing that any existing implementations are even correct. If
we do decide to start emulating the coin blocker then we will need
to advance the API versions, which will (hopefully) force any
third-party devs to test their coin blocker code before opting in.
2021-06-13 11:27:01 -04:00
Tau
7b71b944e1 chuniio 0x0101: Fix IR beam mapping 2021-06-13 11:27:01 -04:00
Tau
01cfc4e48f Load and bind chuniio at runtime 2021-06-13 11:27:01 -04:00
Tau
ef8c844403 Statically link default chuniio 2021-06-13 11:27:01 -04:00
Tau
0c7a9c87c0 Load and bind aimeio at runtime 2021-06-13 11:27:01 -04:00
Tau
ef248d7e0e Export aimeio symbols from hook DLLs 2021-06-13 11:27:00 -04:00
Tau
fb0fd41b6f Statically link current aimeio implementation 2021-06-13 11:27:00 -04:00
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
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
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
5d3b9130281102eb36519ddd0a2c6868ff061a3b
901cedce89 Unify LED command name for Diva/Chunithm slider 2019-12-29 22:48:35 -04:00
Tau
a94772b0c4 Shift hook DLL config structs around 2019-11-05 20:11:25 -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
9ea6e09fdc Tweak JVS coin count APIs
This makes things more consistent with the button/analog APIs.
2019-08-03 17:41:39 -04:00
Tau
b44b62fc72 chunihook: Subsume cardhook
One less DLL floating around.
2019-06-09 15:42:20 -04:00
Tau
6d06429217 chunihook/jvs.c: Fix active-low beam trigger 2019-06-09 15:40:16 -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
0271abb21e board/io3.c: Fix JVS coin counter emulation 2019-05-02 19:38:39 -04:00
Tau
025102fc58 Remove PCH source files
Deprecated in newer versions of Meson.
2019-05-01 21:17:30 -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
bbe085b73d board/slider-cmd.h: Add separate Diva LED cmd
The Chunithm slider has sixteen cells and fifteen (I think?)
vertical lines splitting the cells. Diva does not have these lines,
so presumably the LED data format is different. Need to analyze
this further.
2019-02-26 13:49:29 -05:00
Tau
8036ff71ec board: Factor out Chunithm slider 2019-01-26 12:05:37 -05:00
Tau
51e4eca7dd Add MSVC PCH support 2018-11-23 18:25:22 -05:00
Tau
9ec0fbf957 Suppress hook DLL exports 2018-11-23 18:12:36 -05:00
Tau
0cbd950289 Fix non-PCH build 2018-11-23 14:37:42 -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
Tau
4564699a42 chunihook/slider.c: Add Chunithm slider emulation 2018-11-20 20:33:17 -05:00