feat: Add iidxio-async implementation
A shim library implementing the same concept as the already existing ddrio-async library. The iidxio implementation takes another iidxio library and runs it asynchronously which may improve performance for certain iidxio implementations, e.g. if the send and receive functions are driving actual IO calls synchrously and are expensive. This is not a replacement for a well engineered and proper implementation of a iidxio library for any specific use-case. It does not fix bad performance of existing implementations, i.e. if the poll rate is too low because actual IO is too slow. Use with caution and know why and when you need to use it.
This commit is contained in:
@@ -48,6 +48,8 @@ Available implementations that can be swapped out depending on which kind of IO
|
||||
use:
|
||||
|
||||
- `iidxio`: Default implementation supporting keyboard, mouse and USB game controllers
|
||||
- [iidxio-async](iidxhook/iidxio-async.md): Shim implementation that runs another iidxio implementation in a dedicated
|
||||
thread
|
||||
- [iidxio-bio2](iidxhook/iidxio-bio2.md): Support BIO2 hardware
|
||||
- [iidxio-ezusb](iidxhook/iidxio-ezusb.md): Support C02 ezusb FX hardware
|
||||
- [iidxio-ezusb2](iidxhook/iidxio-ezusb2.md): Support IO2 ezusb FX2 hardware
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# IIDXIO async API implementation
|
||||
|
||||
This implementation of the iidxio API is a shim library that takes another iidxio library and
|
||||
runs the functions `iidx_io_ep1_send`, `iidx_io_ep2_recv` and `iidx_io_ep3_write_16seg` in a
|
||||
dedicated thread. State synchronization to the getter and setter functions is also handled
|
||||
transparently.
|
||||
|
||||
Usage of this **may** improve performance of certain iidxio implementations or when using them
|
||||
in certain integrations, e.g. the send and receive functions of a iidxio implementation for some
|
||||
target IO hardware calls are synchronous and expensive.
|
||||
|
||||
This is not a fix/solution to a badly implemented iidxio library with poor performance as it cannot
|
||||
make it go faster and address potential latency issues, for example.
|
||||
|
||||
Use with caution and know why and when you need to use it.
|
||||
|
||||
## Setup
|
||||
|
||||
* Add `iidxio-async.dll` in the same folder as your `iidxhookX.dll`
|
||||
* Rename your `iidxio.dll` to `iidxio-async-child.dll`
|
||||
* Rename `iidxio-async.dll` to `iidxio.dll`
|
||||
* Run the game
|
||||
Reference in New Issue
Block a user