Commit Graph
300 Commits
Author SHA1 Message Date
icex2 3a80c41a72 chore: Apply code formatting to entire code base 2023-04-06 14:50:16 +02:00
icex2 6c44d64f45 chore(iidx): Wire-up ezusb configuration in iidxhook1 and 2
Make io board type for ezusb board configurable as well as allow
switching on/off additional ezusb debugging feature.
2023-04-06 14:46:32 +02:00
icex2 c05320c9d3 feat(iidx/config): Expose ezusb specific configuration params
Useful (debugging) and required (io board type) for different
game versions
2023-04-06 14:46:32 +02:00
icex2 db8ff4e624 feat(iidx/ezusb): Make iidx ezusb emu io board type configurable
Second part to fixing the 10th style SQ-INIT error. This has
cross-impact on the kind of security data the game expects.
Therefore, we need to expose the IO board type and make it
configurable like the security data for the different game
versions.

More details explained in a dev journal entry to following
in one of the next commits.
2023-04-06 14:46:32 +02:00
icex2 baaf75a47b fix(iidx/ezusb): ezusb does not have a white dongle
This is one part of fixing the 10th style SQ-INIT boot error.
For some reason, 10th style calls the "second dongle slot"
which, according to the code, is expected to return the same data
as the first (black) dongle slot. Original ezusb/C02/D01 IO boards
do not have a second dongle round plug slot nor ever came with
a splitter cable. I checked original manuals of the C02 conversion
kit, E11 and ECO software upgrade kits. No white dongle nor
additional hardware for any other dongle than a black dongle.
2023-04-06 14:46:32 +02:00
icex2 9b3ac159c1 fix(iidx/ezusb2): Fix IO buffer inconsistency on ezusb ioctl level
See same commit for ezusb for details and reasoning.
2023-04-06 14:46:32 +02:00
icex2 b42cbdc4ea fix(iidx/ezusb): Fix IO buffer inconsistency on ezusb ioctl level 2023-04-06 14:46:32 +02:00
icex2 b596d5e184 chore(dev): Fix incorrect log module header 2023-04-06 14:46:32 +02:00
icex2 9ad16d3a63 feat(iidx/ezusb): Add ezusb api monitoring module
Implement several functions relevant to the boot process with
a focus on the security init part
2023-04-06 14:46:32 +02:00
icex2 f7d76b95b4 fix(iidx/ezusb2): Fix IO buffer inconsistency on ezusb device level 2023-04-03 17:54:53 +02:00
icex2 72e8a593f1 feat(iidx 14-24): Wire up coin mech to IO emulation 2023-04-03 17:54:53 +02:00
icex2 12594289c8 feat(iidx 9-13): Wire up coin mech to IO emulation 2023-04-03 17:54:53 +02:00
icex2 633fac81fb fix(pnm/ezusb2-emu): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 de1d90925a fix(jb/p4io): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 ca71789f53 fix(jb/p3io): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 4c8cd66212 fix(iidx/ezusb2): Fix IO buffer inconsistency/random input misfiring 2023-04-03 17:54:53 +02:00
icex2 c62f1d8065 feat(iidx19): imagefs override strategy with local file redir 2023-04-03 17:54:49 +02:00
icex2 77934d7495 chore: Apply code formatting on entire codebase for consistent style 2023-04-01 20:54:18 +02:00
icex2 d8d5a512b4 feat(iidx18/19): Improve chart-patch to correctly support iidx 18 and 19
The paths changed for 18 and again for 19. Refactor and improve
the detection logic to consider this. This also should make
the code more maintainable.
2023-04-01 20:54:18 +02:00
icex2 988ed47160 fix(iidxhook-util/chart-patch): Bugfix broken synchronization
The synchronization block was too coarse and kept the lock
acquired even when the hooked call continued traversing because
it skipped the chart patch trap code. This was apparently fine
on several games but caused very flaky deadlocking on iidx18
during the boot screens and even crashed iidx19 consistently
before showing the boot screen.
2023-04-01 20:54:18 +02:00
icex2 ffb589faa7 fix(iidxhook-util/settings): Bugfix broken paths with mixed / and \
Applies to iidx18 and iidx19 when using the recently extended
redirect feature for settings paths, mixing / and \ crashes the
game in some operator sub-menus when trying to save settings.
2023-04-01 20:54:18 +02:00
icex2 8325ca167d chore(dev): Fix compiler warning about not knowing the definition for a struct 2023-04-01 20:54:18 +02:00
icex2 a239d18e26 chore(dev): Fix format warning 2023-04-01 20:54:18 +02:00
icex2 bf13d769d7 chore(dev): Fix compiler warning, use correct format for size_t type 2023-04-01 20:54:18 +02:00
icex2 4a672de960 fix(iidx/ezusb): Improve code resiliance of ezusb node-serial module
- Use static assert to verify struct sizes
- Replace "magic numbers" with proper sizeof's
- Allocate largest size buffer for message response to address
  compiler warnings which indicates potential out of bounds
  reads/writes
2023-04-01 20:54:18 +02:00
icex2 ba4ef2b6a5 chore(dev): Disable formatting on some files to prevent header resorting
This leads to compiler errors as windows.h is expected to be
the first header included for other windows related header files.
2023-04-01 20:52:42 +02:00
icex2 e59343a7fb feat(iidx19): Add back btools monitor check for iidxhook5
Provide an option for non final lincle revisions and
if the "modern" monitor check is not delivering stable
results on the final lincle revision, e.g. using the
original "pendual lcd" monitor.
2023-04-01 20:52:21 +02:00
icex2 1154444d16 iidxhook: Integrate settings hook configurability 2023-03-19 21:15:28 +01:00
icex2 7b90963f53 iidhxook-util: Expose settings_path as a configuration option 2023-03-19 21:15:28 +01:00
icex2 722927caa7 iidxhook-util: Add option to configure path for storing settings
Additional flexibility to cover use-cases like storing this
data on a separate partition which keeps the game data folder
clean and read-only.
2023-03-19 21:15:28 +01:00
icex2 f2678539c3 Bugfix inject: Handle process exit event correctly
When the process requests to exit, the debugger thread attached
from inject swallowed that event simply without taking action
of actually terminating the process. Handle this accordingly
when the debugger loop is running and terminate the process
2023-03-06 00:08:06 +01:00
icex2 bb0d2823bf Bugfix util/proc: Forward exit code to TerminateProcess 2023-03-06 00:08:06 +01:00
icex2 c49fc61f89 doc bugfix: Fix incorrect COM port ID
Must be 1 and not 0 for iidx. See also the api.md docs.
2022-10-19 00:44:07 +02:00
Will Xyen b4bf1f481d iidxhook: split off node-16seg to remove eamio dependency from iidxhook-cn
(so iidxhook-cn doesn't need to link against ezusb-iidx-emu)
2022-06-24 00:57:26 -07:00
Will Xyen dc931faf86 ezusb: decouple some nodes from ezusb-iidx-emu
This fixes a build failure in newer gcc for popnhook.
Since node-16seg has a dependency on iidxio
2022-06-23 23:54:30 -07:00
Will Xyen 523c0ad3f2 iidxhook: fix builds in cn versions 2022-06-23 23:42:05 -07:00
icex2 0cd85083f6 Fix compiler warning about conversion type in snprintf 2022-06-16 00:10:50 +02:00
icex2 485c4d0ad7 Documentation clarification 2022-06-16 00:02:49 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d 4bd0ee5ef6 iidxhook: Fix diagonal tearing on textures on iidx18 and 19
Affects all games based on version 18 and 19 which includes
the chinese versions

This code is based on the toastertools implementation.
Credits to the original authors.
2022-06-16 00:02:47 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d 8081793a5f iidxhook4-cn: Add support for IIDX Resort Anthem CN
* Exe based game
* No network functionality
* No card readers checked/used
2022-06-15 23:34:50 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d badd616add iidxhook 4, 5, 5-cn: enable nvidia fix
Was absent but actually fixes crashing on nvidia cards
on these versions as well.
2022-06-15 21:30:43 +00:00
2d9f8a0741a7573b189035dcb819847ecb5d981d 926e976c36 iidxhook5-cn: Fix log messages, Delete unnecessary code
The game doesn't have network nor uses card readers
2022-06-15 21:29:15 +00:00
2d9f8a0741a7573b189035dcb819847ecb5d981d aa147022c6 Add iidxhook5-cn, support IIDX tricoro CN
alternative name: (狂热节拍 IIDX 2)
2022-06-10 22:54:13 +00:00
QCDLZCLW3K f8a09580ea Support pop'n music 15-18
* popnhook1 for pop'n 15 - 18 has been added
* popnio has been added
* inject.exe has new syntax for loading hook DLLs, `real.dll=hook.dll`. This will trigger an early IAT hook where it will load the EXE suspended without resolving imports, replace the reference to real.dll in the import table with hook.dll, and then resolve everything before launching. This allows for ezusb.dll to be hooked properly.
* launcher.exe also has a new early IAT hook feature now. Use `-I real.dll=hook.dll`. The idea is the same as described above for inject.exe.
* Updated ezusb constant namings based on what is visible in ezusb.dll's debug statements.

The launcher.exe implementation of early IAT hooking means that someone can implement popnhook2.dll for 19 and above. I have tried pop'n music Sunny Park using a modified version of popnhook1 and it seems to work to some degree: the I/O check and security check returns OK which means the ezusb hooking used in popnhook1 is also working for the later games using `launcher.exe -I ezusb.dll=ezusb2-popn-shim.dll ...`. The process is rather invasive (manually resolving all imports means more chances to fail) so it has been implemented in such a way that the launcher will work the same as it has before as long as `-I` isn't specified.

One questionable thing I am not confident about is the `texture_usage_fix` hack flag I added in the conf. As the comment says, pop'n music 16 will work in Windows XP without the flag being set, but the game will immediately crash on later OSes without the flag being set in my experience. No other games had this issue in my experience. Enabling it in other games doesn't seem to have any negative effects.
2022-06-10 22:46:59 +00:00
Will Xyen b3b6c3f499 ddrhook1: fix build (missing flag) 2022-06-06 21:51:09 -07:00
QCDLZCLW3K cafa60d0f6 Clean up old variables 2022-05-30 02:00:49 +00:00
QCDLZCLW3K 6d38aa5f4a Add support for DDR X2 US 2022-05-30 02:00:49 +00:00
QCDLZCLW3K c1c5685e3a Force game to always think a debugger isn't present 2022-05-30 02:00:49 +00:00
QCDLZCLW3K 050e52b21e revert: Use process_hijack_startup instead of hooking an early function 2022-05-30 02:00:49 +00:00
QCDLZCLW3K 2223947dd8 Split USB memory path configurations 2022-05-30 02:00:49 +00:00