Skip to content

v0.3.9

Choose a tag to compare

@github-actions github-actions released this 28 Apr 04:36
· 4 commits to main since this release
v0.3.9: log first 20 raw Windows messages with SiGetEvent return code

v0.3.8's heartbeat showed:
- wndProcCalls jumped 16 → 184 → 322 (~30/sec) during puck wiggle
- siEvents/siMotion stayed 0 the whole time
- axes always (0,0,0)

So *something* is being dispatched to our hidden window during input,
but SiGetEvent doesn't recognize the messages as Si events. Either
they're regular Windows messages firing on input (raw input, focus,
etc.) or siappdll is sending them with a format that doesn't match
SiGetEvent's expectations.

Logs the raw msg/wParam/lParam plus SiGetEvent return for the first
20 calls, in InfoLog so it ends up in BepInEx's LogOutput.log. From
that we'll know:
- if msg values are in WM_USER (0x400) + 0x6000-ish range → these
  ARE 3DxWare events; the issue is in our SiGetEvent call/struct
- if they're ordinary Windows messages (WM_INPUT 0xFF, WM_TIMER 0x113,
  WM_KEYDOWN, etc.) → siappdll isn't dispatching events; the driver
  is using the legacy mouse-emulation path for R.E.P.O. and we'd need
  to switch to 3DxNavLib (option C) instead

No behavior change, pure diagnostic.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>