Commit Graph

34 Commits

Author SHA1 Message Date
2a6a8bf8b2
chusan: added chusanhook, led board fix, config added
credits go to @domeori https://dev.s-ul.net/domeori/segatools/-/tree/mr-imports
2023-07-14 00:58:02 +02:00
7c90a79f69 gfxhook/gfx.c: Remove unused self parameter 2023-02-13 03:07:37 -05:00
0443a985bd wip: move gfx to gfxhook, some borderless window stuff 2023-02-13 03:07:37 -05:00
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
Tau
01cfc4e48f Load and bind chuniio at runtime 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
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
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
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