Commit Graph
14 Commits
Author SHA1 Message Date
icex2 eafb2909d1 Appl new code style on whole code base
Use a similar code style to bemanitools though reduce indentation
to 2 spaces. Also some other tweaks to be more similar to google
style.
2021-03-19 15:52:34 +01:00
icex2 b165a4cf86 hook/pro2: Fix order of setting up usb hooks
The khack one is actually low level and must come before the
emulation layer which abstracts the libusb0.1 stuff
2021-03-19 15:02:16 +01:00
icex2 7f1a0b075b patch/piuio: Re-write emulation layer, usb_ctrl -> piuio API
Aside not being well written code, it did not consider that the
pumptools's piuio API is abstracting any kind of sensor multiplexing
to hardware.

With the game still calling the libusb API like usual, which is
8 calls (4 ins and 4 outs) for a single IO state update, this layer
issued 4 times as many calls to any pumptools piuio API implementation.

When using the piuio-real wrapper impl. this means that the real IO
hardware was polled 4 times as often as the game actually intended to
do.

That might have also lead to rather high CPU load on older hardware,
e.g. stock MK6/9 builds.
2021-03-19 14:57:52 +01:00
icex2 956a322013 hook/pro: Fix order of setting up usb hooks
The khack one is actually low level and must come before the
emulation layer which abstracts the libusb0.1 stuff
2021-03-19 13:54:18 +01:00
icex2 c2ee8c0583 patch/piuio-exit: Bugfix when using with more usb devices than just piuio
If you also have the piubtn connected, it will be opened as well, hitting
the open section in the module. It did forward everything correctly, but
the warning didn't make any sense because the same device was not opened
again. Re-work the code to create a meaningful flow. Also return the open
handle if it ever happens that the device gets re-opened without being
closed.
2021-03-19 12:43:19 +01:00
icex2 36736c8a7c patch/piuio: Remove kernel hack handling code
The piuio-khack module is responsible for transparently handling
piuio ITG 2 kernel hack requests now.
2021-03-19 12:43:19 +01:00
icex2 5ced30c2ed hook/pro2: Rework IO hooking, same as pro in previous commit 2021-03-19 12:43:19 +01:00
icex2 df135a19b0 hook/pro: Cleanup IO hooking and use new piuio-khack module
See the comment in the code for details and reasoning.
2021-03-19 12:43:19 +01:00
icex2 0a01503227 capnhook/usbhook: Add invoce next function that resets next handlers
Required for piuio-khack which needs to convert a single libusb
call into 8 separate calls. In that case, we want to advance the
handlers downstream but reset it once we go back up to the invocation
which needs to scatter to multiple calls. As stated by the documentation,
state handling of the irp is not taken care of. This is fine, since
at this point, we don't know what the function is and the caller needs
to take care of regarding saving and recovering any state in the irp.
2021-03-19 12:43:19 +01:00
icex2 5a2c8b5104 patch: Add piuio-khack module
This module takes care of emulating the ITG 2 piuio kernel driver
hack. As a separate module, this can be hooked into any chain of
existing hooks providing a greater level of flexibility and
transparency.
2021-03-19 12:43:17 +01:00
Cube f0040e5a1a Microdog 4.0 Emulator: Standalone 2021-01-14 14:19:44 -08:00
Cube a26830219e added microdog4.0 dog check op code
0x0 reponse is all that is required for dogcheck
Used by PIU Infinity
2021-01-06 20:55:48 +00:00
icex2 6492e4df1a capnhook/result: Extend error code list 2020-12-31 19:54:59 +01:00
icex2 762bf140c0 Version 1.08 with public source code release. 2020-10-03 20:56:55 +02:00