Commit Graph

54 Commits

Author SHA1 Message Date
Felix Anderson 7c90a79f69 gfxhook/gfx.c: Remove unused self parameter 2023-02-13 03:07:37 -05:00
Felix Anderson 0443a985bd wip: move gfx to gfxhook, some borderless window stuff 2023-02-13 03:07:37 -05:00
Felix Anderson 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
Felix Anderson 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
Felix Anderson 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