djhackersdev / bemanitools

Runs recent Konami arcade games and emulates various arcade hardware.
The Unlicense
84 stars 16 forks source link

16seg polling kills iidxio-ezusb in vigem-iidxio #74

Open icex2 opened 3 years ago

icex2 commented 3 years ago

Summary

Kinda related to this.

Expected behavior

IO board does not crash.

Current behavior

IO board crashes due to excessive polling of the bulk write endpoint.

Detailed Description

Since I have seen the same symptoms already when dealing with this, I am quite sure the problem is not entirely solved. Removing any code to write 16seg data "fixes" the problem and everything is fine.

Steps to reproduce

  1. Get a C02 IO and connect it to your test machine.
  2. Flash the firmware to the C02 IO according to the instructions provided by BT5.
  3. Set some 16seg text in the vigem-iidxio.conf to enable 16 seg data to be displayed
  4. Run vigem-iidxio.exe with iidxio-ezusb.dll renamed to iidxio.dll
  5. Wait a bit, like 10-20 secs at most.
  6. Inputs become unresponsive. Restarting vigem-iidxio results in errors when communicating with the IO.
  7. You have to power cycle the IO baord and re-flash the firmware for everything to work again

Possible solution

Context (Environment)

Bemanitools version(s) affected

5.33/5.34 with vigem-iidxio

Game(s) and version(s) affected

Might affect some games, but not encountered any issues so far.

Log output

See attachment.

Configuration files

See attachment.

Command line arguments

APIs used

OS version

Hardware specs

icex2 commented 2 years ago

In GitLab by @Stikam on Sep 24, 2021, 15:22

vigem-iidxio.conflog.txt

Here is my log which probably won't tell anything but it actually crashes at about 20 seconds as described. Also, for some reason the program just refuses to properly being closed and in task manager it stays as Suspended: _20210924_161139_20210924_161216

Specs: Using specific iidxio for C02 board OS: Windows 10 Pro N, Version: 20H2, OS build: 19042.1237 CPU: Intel Core i5-3550 GPU: GTX 465 RAM: 8 GB