logoalt Hacker News

vintagedavetoday at 11:17 AM2 repliesview on HN

I was quite interested in the patch -- am I right in thinking the DirectX library only exports a single function and _everything_ else is through DX interfaces?

I expected to see significantly more code, pass-through to the original DLL.


Replies

seritoolstoday at 11:35 AM

> am I right in thinking the DirectX library only exports a single function and _everything_ else is through DX interfaces

Yup! That's why I didn't have to create a gazillion passthrough functions.

The original DLL in my modern Windows installation has these 8 exports:

    DirectInputCreateA
    DirectInputCreateEx
    DirectInputCreateW
    DllCanUnloadNow
    DllGetClassObject
    DllRegisterServer
    DllUnregisterServer
The game only calls DirectInputCreateA, and the rest happens via the COM object that that function creates.
xx_nstoday at 11:25 AM

The author linked to the repo and the code is at https://github.com/seritools/castrol-honda-dinput-fix/blob/m...

Seems pretty straightforward. They hook DirectInputCreateA() and pass their own device enumeration wrapper with the offending flag removed.

show 1 reply