Add ViGEm iidxio client - [merged] #169

Closed
opened 2020-12-18 16:57:39 +03:00 by icex2 · 36 comments
icex2 commented 2020-12-18 16:57:39 +03:00 (Migrated from github.com)

Merges vigem-iidxio -> master

Summary

Adds a ViGEm client application daemon that exposes BT5's iidxio API as virtual XBOX controllers.

Description

This allows you to use any hardware that is implementing the BT5's iidxio API with any application/game that supports xinput game controllers.

Related Issue

@GRIM.657 also started to work on this at the same time. This MR is incorporating any additional changes of their MR, e.g. compatibility with LR2, more options for TT input handling.

How Has This Been Tested?

Windows 10 x64, system settings, game controllers test menu

Checklist

  • Followed the developer (style) guidelines.
  • Updated existing doc of or add new doc to README file(s).
  • Incorporate any additional features from @GRIM.657's branch, MR !67
_Merges vigem-iidxio -> master_ ## Summary <!--- Provide a general summary of your changes in the Title above --> Adds a ViGEm client application daemon that exposes BT5's iidxio API as virtual XBOX controllers. ## Description <!--- Describe your changes in detail --> This allows you to use any hardware that is implementing the BT5's iidxio API with any application/game that supports xinput game controllers. ## Related Issue <!--- This project only accepts pull requests related to open issues --> <!--- If suggesting a new feature or change, please discuss it in an issue first --> <!--- If fixing a bug, there should be an issue describing it with steps to reproduce --> <!--- Please link to the issue here: --> @GRIM.657 also started to work on this at the same time. This MR is incorporating any additional changes of their MR, e.g. compatibility with LR2, more options for TT input handling. ## How Has This Been Tested? <!--- Please describe in detail how you tested your changes. --> <!--- Include details of your testing environment, and the tests you ran to --> <!--- see how your change affects other areas of the code, etc. --> Windows 10 x64, system settings, game controllers test menu ## Checklist <!-- Make sure you covered all items, which apply, of the checklist below. --> <!-- Strikethrough items that do not apply and provide a brief description why. --> * [x] Followed the developer (style) guidelines. * [x] Updated existing doc of or add new doc to README file(s). * [x] Incorporate any additional features from @GRIM.657's branch, MR !67
icex2 commented 2020-12-18 19:56:36 +03:00 (Migrated from github.com)

added 5 commits

  • 2e822995 - vigem-iidxio: Add vigem implementation with iidxio interface
  • 194e999f - doc: Add vigem-iidxio documentation
  • 197c6519 - doc: Collect vigem related documentation in own subfolder in doc
  • 97bf2b3f - doc: Add index README for vigem stuff, add vigem info to root readme
  • 14b35297 - iidxio-ezusb: Bugfix random input/outputs on startup

Compare with previous version

added 5 commits <ul><li>2e822995 - vigem-iidxio: Add vigem implementation with iidxio interface</li><li>194e999f - doc: Add vigem-iidxio documentation</li><li>197c6519 - doc: Collect vigem related documentation in own subfolder in doc</li><li>97bf2b3f - doc: Add index README for vigem stuff, add vigem info to root readme</li><li>14b35297 - iidxio-ezusb: Bugfix random input/outputs on startup</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1390&start_sha=fc70b5e5276b688ab0a394d97a5c2f7ce3d481d3)
icex2 commented 2020-12-18 21:50:37 +03:00 (Migrated from github.com)

added 6 commits

  • 8d5b5cf1 - doc: Add vigem-iidxio documentation
  • 6df14dd7 - doc: Collect vigem related documentation in own subfolder in doc
  • cc401d5d - doc: Add index README for vigem stuff, add vigem info to root readme
  • d31a1ae3 - iidxio-ezusb: Bugfix random input/outputs on startup
  • 321d6fc2 - vigem-iidxio: Support multiple different light sequence modes
  • d3862c7b - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings

Compare with previous version

added 6 commits <ul><li>8d5b5cf1 - doc: Add vigem-iidxio documentation</li><li>6df14dd7 - doc: Collect vigem related documentation in own subfolder in doc</li><li>cc401d5d - doc: Add index README for vigem stuff, add vigem info to root readme</li><li>d31a1ae3 - iidxio-ezusb: Bugfix random input/outputs on startup</li><li>321d6fc2 - vigem-iidxio: Support multiple different light sequence modes</li><li>d3862c7b - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1391&start_sha=14b352973dacf7a8e4ab4f2996e887e5bd151edf)
icex2 commented 2020-12-18 21:58:30 +03:00 (Migrated from github.com)

marked the checklist item Followed the developer (style) guidelines. as completed

marked the checklist item **Followed the developer (style) guidelines.** as completed
icex2 commented 2020-12-18 22:01:04 +03:00 (Migrated from github.com)

General note: Even this is not compatible with Infinitas, I would still like to get this merged as I would consider it a valid solution nevertheless. Someone else can have a look at whatever emulates direct input, e.g. vjoy, and open another MR.

@GRIM.657 would be cool if you can have a look at my implementation and also give it a try on whatever setup(s) you tested yours. Feedback highly appreciated.

General note: Even this is not compatible with Infinitas, I would still like to get this merged as I would consider it a valid solution nevertheless. Someone else can have a look at whatever emulates direct input, e.g. vjoy, and open another MR. @GRIM.657 would be cool if you can have a look at my implementation and also give it a try on whatever setup(s) you tested yours. Feedback highly appreciated.
icex2 commented 2020-12-23 05:30:14 +03:00 (Migrated from github.com)

In GitLab by @GRIM.657 on Dec 23, 2020, 03:30

Hey, I got a chance to test this today. Fyi, I’m using an IO-2-R with Windows 10 Home and a custom PC build (i7-6700T, RX560).

When I set the lights mode to 1 or 2, the behavior is the same, once the TT is spun the neons turn on and remain on all the time. Once the TT-as-a-button input is copied over, mode 2 will probably be easy to fix because the neon illumination state and the TT-as-a-button state can be the same (this is how I did it). I’m not sure why mode 1 is behaving the same as mode 2.

In Relative mode it seems like the stick position is constantly 0, I don't get any response. You can check the adjustments I made to the math in my MR for Relative mode to work, and it’s still a little rough around the edges, but it’s functional.

There is no input on controller 3. P1 keys + start, and P2 keys + start both show up on each pad, but the third pad shows no response for the cab buttons like Effect, VEFX, Test, Service. At a cursory glance at the code I’m not sure why this is happening.

The LED ticker functionality is really cool! One thing that might be helpful is converting the user’s config input to uppercase for them, or adding a note about using uppercase letters. I tried using lowercase letters but got gibberish on the ticker.

In GitLab by @GRIM.657 on Dec 23, 2020, 03:30 Hey, I got a chance to test this today. Fyi, I’m using an IO-2-R with Windows 10 Home and a custom PC build (i7-6700T, RX560). When I set the lights mode to `1` or `2`, the behavior is the same, once the TT is spun the neons turn on and remain on all the time. Once the TT-as-a-button input is copied over, mode 2 will probably be easy to fix because the neon illumination state and the TT-as-a-button state can be the same (this is how I did it). I’m not sure why mode 1 is behaving the same as mode 2. In Relative mode it seems like the stick position is constantly 0, I don't get any response. You can check the adjustments I made to the math in my MR for Relative mode to work, and it’s still a little rough around the edges, but it’s functional. There is no input on controller 3. P1 keys + start, and P2 keys + start both show up on each pad, but the third pad shows no response for the cab buttons like Effect, VEFX, Test, Service. At a cursory glance at the code I’m not sure why this is happening. The LED ticker functionality is really cool! One thing that might be helpful is converting the user’s config input to uppercase for them, or adding a note about using uppercase letters. I tried using lowercase letters but got gibberish on the ticker.
icex2 commented 2020-12-23 23:37:06 +03:00 (Migrated from github.com)

Hey, I forgot to add that this is not entirely ready, yet, and I still have to port a few things from your branch. Also, I haven't tested everything, yet, either.

Nevertheless, your input is valuable nevertheless as it points out things that I still need to look into + some testing details.

I will rename this MR to make this clear now and let you know once this is actually ready for testing. Sorry for not making this clear.

Hey, I forgot to add that this is not entirely ready, yet, and I still have to port a few things from your branch. Also, I haven't tested everything, yet, either. Nevertheless, your input is valuable nevertheless as it points out things that I still need to look into + some testing details. I will rename this MR to make this clear now and let you know once this is actually ready for testing. Sorry for not making this clear.
icex2 commented 2020-12-23 23:37:16 +03:00 (Migrated from github.com)

marked this merge request as draft

marked this merge request as **draft**
icex2 commented 2020-12-31 17:51:10 +03:00 (Migrated from github.com)

added 46 commits

  • d3862c7b...cb5206a8 - 33 commits from branch master
  • 0af4b1a0 - vigem-sdvxio: Make private functions static
  • 6c6e2150 - vigem-sdvxio: Add missing free for cleaning up vigem client
  • e8644b2d - vigem-iidxio: Add vigem implementation with iidxio interface
  • c3a51741 - doc: Add vigem-iidxio documentation
  • d3c5577e - doc: Collect vigem related documentation in own subfolder in doc
  • 7c555e48 - doc: Add index README for vigem stuff, add vigem info to root readme
  • 439b9194 - iidxio-ezusb: Bugfix random input/outputs on startup
  • 0eaa7f73 - vigem-iidxio: Support multiple different light sequence modes
  • 7768e74c - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings
  • 25301574 - wip
  • b01e52a4 - wip
  • faa0fe73 - wip
  • 8289090c - wip

Compare with previous version

added 46 commits <ul><li>d3862c7b...cb5206a8 - 33 commits from branch <code>master</code></li><li>0af4b1a0 - vigem-sdvxio: Make private functions static</li><li>6c6e2150 - vigem-sdvxio: Add missing free for cleaning up vigem client</li><li>e8644b2d - vigem-iidxio: Add vigem implementation with iidxio interface</li><li>c3a51741 - doc: Add vigem-iidxio documentation</li><li>d3c5577e - doc: Collect vigem related documentation in own subfolder in doc</li><li>7c555e48 - doc: Add index README for vigem stuff, add vigem info to root readme</li><li>439b9194 - iidxio-ezusb: Bugfix random input/outputs on startup</li><li>0eaa7f73 - vigem-iidxio: Support multiple different light sequence modes</li><li>7768e74c - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings</li><li>25301574 - wip</li><li>b01e52a4 - wip</li><li>faa0fe73 - wip</li><li>8289090c - wip</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1405&start_sha=d3862c7b45d086ee80591c7ac5d1b84e7c4d2f68)
icex2 commented 2020-12-31 17:55:26 +03:00 (Migrated from github.com)

added 1 commit

  • e80f0e7b - wip

Compare with previous version

added 1 commit <ul><li>e80f0e7b - wip</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1406&start_sha=8289090cd17c142203bbdbda2ca975732cec4cb3)
icex2 commented 2020-12-31 18:00:16 +03:00 (Migrated from github.com)

added 4 commits

  • 8cbc938c - vigem-iidxio: Refactor configuration
  • d03a9b53 - vigem-iidxio: Bugfix missing break in switch
  • c523e55d - vigem-iidxio: Fix cab light sequencer blink on TT spin
  • 92e40722 - vigem-iidxio: Major refactoring incorporating features from Grim's branch

Compare with previous version

added 4 commits <ul><li>8cbc938c - vigem-iidxio: Refactor configuration</li><li>d03a9b53 - vigem-iidxio: Bugfix missing break in switch</li><li>c523e55d - vigem-iidxio: Fix cab light sequencer blink on TT spin</li><li>92e40722 - vigem-iidxio: Major refactoring incorporating features from Grim&#39;s branch</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1407&start_sha=e80f0e7b574660ad4427de988b61f1c923c12907)
icex2 commented 2020-12-31 18:01:33 +03:00 (Migrated from github.com)

marked this merge request as ready

marked this merge request as **ready**
icex2 commented 2020-12-31 18:05:23 +03:00 (Migrated from github.com)

added 2 commits

  • 474a8a24 - vigem-iidxio: Major refactoring incorporating features from Grim's branch
  • cd5ebd5b - vigem-iidxio: Improve responsiveness on fast direction change TT

Compare with previous version

added 2 commits <ul><li>474a8a24 - vigem-iidxio: Major refactoring incorporating features from Grim&#39;s branch</li><li>cd5ebd5b - vigem-iidxio: Improve responsiveness on fast direction change TT</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1408&start_sha=92e40722c6f3f46d46d0482e53e8f1d4cea26347)
icex2 commented 2020-12-31 18:05:25 +03:00 (Migrated from github.com)

MR is now ready to be reviewed. I should have incorporated everything from your branch @GRIM.657. All logic is ported 1:1, so everything should behave identical to your branch. One exception though, I figured that quickly reversing the TT direction did not translate well to the button inputs. I added a bit of code there (see separate commit) which takes care of that, imo.

Please test and let me know how everything works/feels.

@xyen your feedback is appreciated as well, of course.

MR is now ready to be reviewed. I should have incorporated everything from your branch @GRIM.657. All logic is ported 1:1, so everything should behave identical to your branch. One exception though, I figured that quickly reversing the TT direction did not translate well to the button inputs. I added a bit of code there (see separate commit) which takes care of that, imo. Please test and let me know how everything works/feels. @xyen your feedback is appreciated as well, of course.
icex2 commented 2020-12-31 18:05:58 +03:00 (Migrated from github.com)

marked the checklist item Incorporate any additional features from @GRIM.657's branch, MR !67 as completed

marked the checklist item **Incorporate any additional features from @GRIM.657's branch, MR !67** as completed
icex2 commented 2021-01-01 06:17:15 +03:00 (Migrated from github.com)

In GitLab by @xyen on Jan 1, 2021, 04:17

Commented on doc/vigem/README.md line 12

3 pads

In GitLab by @xyen on Jan 1, 2021, 04:17 Commented on [doc/vigem/README.md line 12](https://github.com/djhackersdev/bemanitools/compare/cb5206a86b0a9989955ea72b19fe7bc842f47a48..cd5ebd5bbce97e63d0e5682a24fe0747305d6ff1#diff-09c2777c5cfe13f2ca79bfe41b5a60b2R12) 3 pads
icex2 commented 2021-01-01 06:17:15 +03:00 (Migrated from github.com)

In GitLab by @xyen on Jan 1, 2021, 04:17

Commented on doc/vigem/vigem-iidxio.md line 5

Probably add a note that it doesn't work with games that require dinput (infinitas)

In GitLab by @xyen on Jan 1, 2021, 04:17 Commented on [doc/vigem/vigem-iidxio.md line 5](https://github.com/djhackersdev/bemanitools/compare/926be2689361d8d247f9d08eb29480cf8c9c37c0..2285d06d348f346914ce805499087e9176727efc#diff-0ecc97164388a422b04a38d9b37cd79dR5) Probably add a note that it doesn't work with games that require dinput (infinitas)
icex2 commented 2021-01-01 06:17:16 +03:00 (Migrated from github.com)

In GitLab by @xyen on Jan 1, 2021, 04:17

Commented on src/main/iidxio-ezusb/iidxio.c line 84

gate this behind a config flag

In GitLab by @xyen on Jan 1, 2021, 04:17 Commented on [src/main/iidxio-ezusb/iidxio.c line 84](https://github.com/djhackersdev/bemanitools/compare/926be2689361d8d247f9d08eb29480cf8c9c37c0..2285d06d348f346914ce805499087e9176727efc#diff-92b2ba6911b0711195ea0bffa22ccaa5R84) gate this behind a config flag
icex2 commented 2021-01-01 06:17:16 +03:00 (Migrated from github.com)

In GitLab by @xyen on Jan 1, 2021, 04:17

Commented on src/main/vigem-iidxio/config.c line 1

given the complexity of the config file, I'd generate a default one and provide it.

In GitLab by @xyen on Jan 1, 2021, 04:17 Commented on [src/main/vigem-iidxio/config.c line 1](https://github.com/djhackersdev/bemanitools/compare/926be2689361d8d247f9d08eb29480cf8c9c37c0..2285d06d348f346914ce805499087e9176727efc#diff-c4b28067a1c583cf171444fc3b96812fR1) given the complexity of the config file, I'd generate a default one and provide it.
icex2 commented 2021-01-02 15:15:57 +03:00 (Migrated from github.com)

Why? Since this is an issue/bug on real hardware that can trigger odd software behavior depending on how you process the inputs on startup, I don't see a reason having to gate this behind a flag.

Why? Since this is an issue/bug on real hardware that can trigger odd software behavior depending on how you process the inputs on startup, I don't see a reason having to gate this behind a flag.
icex2 commented 2021-01-02 15:17:12 +03:00 (Migrated from github.com)

changed this line in version 8 of the diff

changed this line in [version 8 of the diff](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1414&start_sha=cd5ebd5bbce97e63d0e5682a24fe0747305d6ff1#865e46fd89fb7a7e57f3e8b17a67d4911299bc35_12_12)
icex2 commented 2021-01-02 15:17:12 +03:00 (Migrated from github.com)

added 2 commits

  • 08b3a3f3 - vigem/doc: Minor fixes and improvements
  • 7993931e - vigem-iidxio: Add default configuration to dist files

Compare with previous version

added 2 commits <ul><li>08b3a3f3 - vigem/doc: Minor fixes and improvements</li><li>7993931e - vigem-iidxio: Add default configuration to dist files</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1414&start_sha=cd5ebd5bbce97e63d0e5682a24fe0747305d6ff1)
icex2 commented 2021-01-02 15:19:07 +03:00 (Migrated from github.com)

added 19 commits

  • 7993931e...c02cb961 - 3 commits from branch master
  • 3ab50576 - vigem-sdvxio: Make private functions static
  • a1d00c08 - vigem-sdvxio: Add missing free for cleaning up vigem client
  • 517a3fa6 - vigem-iidxio: Add vigem implementation with iidxio interface
  • 640c9fe5 - doc: Add vigem-iidxio documentation
  • 463df2e4 - doc: Collect vigem related documentation in own subfolder in doc
  • bf6e920d - doc: Add index README for vigem stuff, add vigem info to root readme
  • 659bb947 - iidxio-ezusb: Bugfix random input/outputs on startup
  • 134add81 - vigem-iidxio: Support multiple different light sequence modes
  • cd1613a5 - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings
  • ff151f49 - vigem-iidxio: Refactor configuration
  • 76ed63a3 - vigem-iidxio: Bugfix missing break in switch
  • 8179f63b - vigem-iidxio: Fix cab light sequencer blink on TT spin
  • 8430aee6 - vigem-iidxio: Major refactoring incorporating features from Grim's branch
  • 949fde66 - vigem-iidxio: Improve responsiveness on fast direction change TT
  • 54722366 - vigem/doc: Minor fixes and improvements
  • f26d1709 - vigem-iidxio: Add default configuration to dist files

Compare with previous version

added 19 commits <ul><li>7993931e...c02cb961 - 3 commits from branch <code>master</code></li><li>3ab50576 - vigem-sdvxio: Make private functions static</li><li>a1d00c08 - vigem-sdvxio: Add missing free for cleaning up vigem client</li><li>517a3fa6 - vigem-iidxio: Add vigem implementation with iidxio interface</li><li>640c9fe5 - doc: Add vigem-iidxio documentation</li><li>463df2e4 - doc: Collect vigem related documentation in own subfolder in doc</li><li>bf6e920d - doc: Add index README for vigem stuff, add vigem info to root readme</li><li>659bb947 - iidxio-ezusb: Bugfix random input/outputs on startup</li><li>134add81 - vigem-iidxio: Support multiple different light sequence modes</li><li>cd1613a5 - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings</li><li>ff151f49 - vigem-iidxio: Refactor configuration</li><li>76ed63a3 - vigem-iidxio: Bugfix missing break in switch</li><li>8179f63b - vigem-iidxio: Fix cab light sequencer blink on TT spin</li><li>8430aee6 - vigem-iidxio: Major refactoring incorporating features from Grim&#39;s branch</li><li>949fde66 - vigem-iidxio: Improve responsiveness on fast direction change TT</li><li>54722366 - vigem/doc: Minor fixes and improvements</li><li>f26d1709 - vigem-iidxio: Add default configuration to dist files</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1415&start_sha=7993931e0b64be9c7ec1c1ba3e207f86dfb6f9a5)
icex2 commented 2021-01-03 06:02:58 +03:00 (Migrated from github.com)

In GitLab by @GRIM.657 on Jan 3, 2021, 04:02

Commented on src/main/vigem-iidxio/cab-light-sequencer.c line 55

I still noticed the neons flickering occasionally, I tested with a multiplier of * 4 here and that worked nicely. An even higher value might be better.

In GitLab by @GRIM.657 on Jan 3, 2021, 04:02 Commented on [src/main/vigem-iidxio/cab-light-sequencer.c line 55](https://github.com/djhackersdev/bemanitools/compare/c02cb961843e64af091c41542b526dc9014be59d..f26d17091b11adc343dd230229c55665e7c8d85f#diff-31ffa309dacd451ab7529cca9a7af829R55) I still noticed the neons flickering occasionally, I tested with a multiplier of `* 4` here and that worked nicely. An even higher value might be better.
icex2 commented 2021-01-03 06:13:28 +03:00 (Migrated from github.com)

In GitLab by @GRIM.657 on Jan 3, 2021, 04:13

Thanks for incorporating the additional features! I tested using the same setup as before, it works great, verified all buttons, lights modes, and TT input modes. I think the TT button input responsiveness in LR2 feels improved compared to mine, that’s a good addition. I’m going to go ahead and close my MR.

There’s one oddity I found. If I use test+service to exit the program, and then I relaunch it, it reports test+service are held and exits again. Relaunching it a 2nd time works normally. I tried calling _all_lights_off_shutdown() at line 327 before the main loop starts to flush the input state, and this seems to help. I wonder if it actually makes more sense to incorporate something like _all_lights_off_shutdown in the iidxio-ezusb(2) init/fini functions, since this is a quirk of that hardware and might not apply to BIO2 or other iidxio implementations. I think that's outside the scope of this MR, but might be something to consider.

In GitLab by @GRIM.657 on Jan 3, 2021, 04:13 Thanks for incorporating the additional features! I tested using the same setup as before, it works great, verified all buttons, lights modes, and TT input modes. I think the TT button input responsiveness in LR2 feels improved compared to mine, that’s a good addition. I’m going to go ahead and close my MR. There’s one oddity I found. If I use test+service to exit the program, and then I relaunch it, it reports test+service are held and exits again. Relaunching it a 2nd time works normally. I tried calling `_all_lights_off_shutdown()` at line 327 before the main loop starts to flush the input state, and this seems to help. I wonder if it actually makes more sense to incorporate something like _all_lights_off_shutdown in the iidxio-ezusb(2) init/fini functions, since this is a quirk of that hardware and might not apply to BIO2 or other iidxio implementations. I think that's outside the scope of this MR, but might be something to consider.
icex2 commented 2021-01-05 20:41:54 +03:00 (Migrated from github.com)

In GitLab by @xyen on Jan 5, 2021, 18:41

Commented on src/main/iidxio-ezusb/iidxio.c line 84

The bug is specific to using it with certain iidxio right? If using this with other iidxio, they may behave differently, and not require the flushing, hence why I feel like it should be gated.

Edit: nvm, idk why I thought this code was in vigem-iidxio

In GitLab by @xyen on Jan 5, 2021, 18:41 Commented on [src/main/iidxio-ezusb/iidxio.c line 84](https://github.com/djhackersdev/bemanitools/compare/926be2689361d8d247f9d08eb29480cf8c9c37c0..2285d06d348f346914ce805499087e9176727efc#diff-92b2ba6911b0711195ea0bffa22ccaa5R84) The bug is specific to using it with certain iidxio right? If using this with other iidxio, they may behave differently, and not require the flushing, hence why I feel like it should be gated. Edit: nvm, idk why I thought this code was in vigem-iidxio
icex2 commented 2021-01-06 00:06:10 +03:00 (Migrated from github.com)

In GitLab by @GRIM.657 on Jan 5, 2021, 22:06

Commented on src/main/iidxio-ezusb/iidxio.c line 84

From my comment above: "I wonder if it actually makes more sense to incorporate something like _all_lights_off_shutdown in the iidxio-ezusb(2) init/fini functions, since this is a quirk of that hardware and might not apply to BIO2 or other iidxio implementations. I think that's outside the scope of this MR, but might be something to consider."

This would actually have several advantages. It keeps hardware-specific quirks to the section of code directly related to that hardware. It removes the need for duplicated code between vigem-iidxio and iidxiotest. And, it would result in a clean I/O state when quitting out of IIDX AC titles too, instead of just these utilities.

In GitLab by @GRIM.657 on Jan 5, 2021, 22:06 Commented on [src/main/iidxio-ezusb/iidxio.c line 84](https://github.com/djhackersdev/bemanitools/compare/926be2689361d8d247f9d08eb29480cf8c9c37c0..2285d06d348f346914ce805499087e9176727efc#diff-92b2ba6911b0711195ea0bffa22ccaa5R84) From my comment above: "I wonder if it actually makes more sense to incorporate something like _all_lights_off_shutdown in the iidxio-ezusb(2) init/fini functions, since this is a quirk of that hardware and might not apply to BIO2 or other iidxio implementations. I think that's outside the scope of this MR, but might be something to consider." This would actually have several advantages. It keeps hardware-specific quirks to the section of code directly related to that hardware. It removes the need for duplicated code between vigem-iidxio and iidxiotest. And, it would result in a clean I/O state when quitting out of IIDX AC titles too, instead of just these utilities.
icex2 commented 2021-01-06 21:14:22 +03:00 (Migrated from github.com)

See my other comment below.

See my other comment below.
icex2 commented 2021-01-06 21:22:52 +03:00 (Migrated from github.com)

Yup, I agree and *4 works better than *2.

Yup, I agree and *4 works better than *2.
icex2 commented 2021-01-06 21:33:19 +03:00 (Migrated from github.com)

changed this line in version 10 of the diff

changed this line in [version 10 of the diff](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1428&start_sha=f26d17091b11adc343dd230229c55665e7c8d85f#771caa17c8effbe12bc9398e0c089e3f35b909a4_55_55)
icex2 commented 2021-01-06 21:33:19 +03:00 (Migrated from github.com)

added 2 commits

  • 545729ce - vigem-iidxio: Reduce random flickering cab-light on tt spin
  • 82e3925c - iidxio-bio2: Properly fix flushing on shutdown

Compare with previous version

added 2 commits <ul><li>545729ce - vigem-iidxio: Reduce random flickering cab-light on tt spin</li><li>82e3925c - iidxio-bio2: Properly fix flushing on shutdown</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1428&start_sha=f26d17091b11adc343dd230229c55665e7c8d85f)
icex2 commented 2021-01-06 21:43:42 +03:00 (Migrated from github.com)

added 2 commits

  • b77da365 - iidxio-ezusb: Fix same flushing issue on shutdown as bio2
  • 2c0c8926 - iidxio-bio2: Add missing aciodrv on finit to cleanup acio stuff

Compare with previous version

added 2 commits <ul><li>b77da365 - iidxio-ezusb: Fix same flushing issue on shutdown as bio2</li><li>2c0c8926 - iidxio-bio2: Add missing aciodrv on finit to cleanup acio stuff</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1429&start_sha=82e3925cfc121af8083bef9a0ae16740b654872f)
icex2 commented 2021-01-06 21:45:16 +03:00 (Migrated from github.com)

I agree with you @GRIM.657, that's a good point to move this to the hardware specific iidxio implementations. I have moved some more HW specific stuff when turning off the lights to flush any remaining data properly on iidx_io_fini of iidxio-bio2 and iidxio-ezusb (both tested).

I agree with you @GRIM.657, that's a good point to move this to the hardware specific iidxio implementations. I have moved some more HW specific stuff when turning off the lights to flush any remaining data properly on `iidx_io_fini` of `iidxio-bio2` and `iidxio-ezusb` (both tested).
icex2 commented 2021-01-06 21:48:47 +03:00 (Migrated from github.com)

In GitLab by @xyen on Jan 6, 2021, 19:48

approved this merge request

In GitLab by @xyen on Jan 6, 2021, 19:48 approved this merge request
icex2 commented 2021-01-06 23:34:26 +03:00 (Migrated from github.com)

This turned out really nice, thanks a lot for your help @GRIM.657. Your input regarding code and feedback was very valuable, highly appreciated.

This turned out really nice, thanks a lot for your help @GRIM.657. Your input regarding code and feedback was very valuable, highly appreciated.
icex2 commented 2021-01-06 23:34:35 +03:00 (Migrated from github.com)

added 22 commits

  • 2c0c8926...926be268 - 2 commits from branch master
  • aae4f565 - vigem-sdvxio: Make private functions static
  • fdfcba45 - vigem-sdvxio: Add missing free for cleaning up vigem client
  • 74c6888f - vigem-iidxio: Add vigem implementation with iidxio interface
  • fd827ad2 - doc: Add vigem-iidxio documentation
  • 57b4e8d3 - doc: Collect vigem related documentation in own subfolder in doc
  • 537362fe - doc: Add index README for vigem stuff, add vigem info to root readme
  • ebc11a3c - iidxio-ezusb: Bugfix random input/outputs on startup
  • c4a1ff5f - vigem-iidxio: Support multiple different light sequence modes
  • c8fbb303 - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings
  • 1b31f564 - vigem-iidxio: Refactor configuration
  • 539ecba6 - vigem-iidxio: Bugfix missing break in switch
  • 7737fe25 - vigem-iidxio: Fix cab light sequencer blink on TT spin
  • 43065545 - vigem-iidxio: Major refactoring incorporating features from Grim's branch
  • 2323e44d - vigem-iidxio: Improve responsiveness on fast direction change TT
  • 2da3fe1a - vigem/doc: Minor fixes and improvements
  • efb0b907 - vigem-iidxio: Add default configuration to dist files
  • 4d35a34a - vigem-iidxio: Reduce random flickering cab-light on tt spin
  • b51f5a33 - iidxio-bio2: Properly fix flushing on shutdown
  • b3557ab1 - iidxio-ezusb: Fix same flushing issue on shutdown as bio2
  • 2285d06d - iidxio-bio2: Add missing aciodrv on finit to cleanup acio stuff

Compare with previous version

added 22 commits <ul><li>2c0c8926...926be268 - 2 commits from branch <code>master</code></li><li>aae4f565 - vigem-sdvxio: Make private functions static</li><li>fdfcba45 - vigem-sdvxio: Add missing free for cleaning up vigem client</li><li>74c6888f - vigem-iidxio: Add vigem implementation with iidxio interface</li><li>fd827ad2 - doc: Add vigem-iidxio documentation</li><li>57b4e8d3 - doc: Collect vigem related documentation in own subfolder in doc</li><li>537362fe - doc: Add index README for vigem stuff, add vigem info to root readme</li><li>ebc11a3c - iidxio-ezusb: Bugfix random input/outputs on startup</li><li>c4a1ff5f - vigem-iidxio: Support multiple different light sequence modes</li><li>c8fbb303 - vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings</li><li>1b31f564 - vigem-iidxio: Refactor configuration</li><li>539ecba6 - vigem-iidxio: Bugfix missing break in switch</li><li>7737fe25 - vigem-iidxio: Fix cab light sequencer blink on TT spin</li><li>43065545 - vigem-iidxio: Major refactoring incorporating features from Grim&#39;s branch</li><li>2323e44d - vigem-iidxio: Improve responsiveness on fast direction change TT</li><li>2da3fe1a - vigem/doc: Minor fixes and improvements</li><li>efb0b907 - vigem-iidxio: Add default configuration to dist files</li><li>4d35a34a - vigem-iidxio: Reduce random flickering cab-light on tt spin</li><li>b51f5a33 - iidxio-bio2: Properly fix flushing on shutdown</li><li>b3557ab1 - iidxio-ezusb: Fix same flushing issue on shutdown as bio2</li><li>2285d06d - iidxio-bio2: Add missing aciodrv on finit to cleanup acio stuff</li></ul> [Compare with previous version](/djhackers/bemanitools/-/merge_requests/68/diffs?diff_id=1430&start_sha=2c0c8926a17fd8587bde44908e8ee69dddf7ea37)
icex2 commented 2021-01-06 23:34:42 +03:00 (Migrated from github.com)

resolved all threads

resolved all threads
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Max/djhackersdev_bemanitools#169