Skip to content

Releases: TheNathannator/RB4InstrumentMapper

v5.0.2: RPCS3 Whammy Fix

15 Jun 23:41
9cbf45e
Compare
Choose a tag to compare

This version removes a workaround from RPCS3 compatibility mode that was intended to prevent guitar whammy from causing issues in the RPCS3 mapping menu. This workaround seemed to cause whammy to not work in Rock Band 3, and might have affected other games as well.

If you end up needing to rebind anything in the RPCS3 bindings menu (you shouldn't need to, if you do make an issue here so I can fix that), you will need to move the whammy bar to around its halfway point to prevent the whammy from auto-binding to whatever controls you select.

v5.0.1: Guitar Axis Fix!

14 Jun 09:34
aa8663f
Compare
Choose a tag to compare

A bug in GameInput resulted in axis changes on guitars not being picked up correctly, this version adds a workaround to fix that.

Additionally, a resource leak in the code that sends GameInput output reports has been fixed. This would affect anyone using GHL guitars and Wireless Legacy Adapters under GameInput, but those should still be used under WinUSB for the time being.

v5.0.0: New GameInput Backend!

10 Jun 03:56
1d5cd8d
Compare
Choose a tag to compare

This version implements a new primary backend using the GameInput controller API, replacing the Pcap backend and making WinPcap no longer necessary. This new backend requires no additional software to be installed, and makes the Riffmaster usable without having to install WinUSB on it.

The GameInput backend is not without its quirks lol, however any issues you encounter should be solved with either a device reconnect, program restart, or full PC restart. In particular, I suggest doing a full PC restart after switching any devices to/from WinUSB in the Configure Devices menu, that seems to be particularly prone to causing weird device states in GameInput. These issues are most likely things I cannot fix unfortunately, so a forward notice is the best I can do to address them.

This version also contains cumulative changes from v4.1.0 and v4.2.0, which were only pre-releases and never got released properly. Additionally, the installer has been reworked so that it can include the GameInput redistributable for systems which do not already have GameInput installed for some reason. For technical reasons, this results in a different UI style than what was included previously. Doesn't look as nice, but still does the job.

Additional Changes

Additions

  • A new RPCS3 compatibility mode has been added, at the request of the MiloHax community. This mode changes the ViGEmBus mappings to eliminate the need to remap controls when using RB4InstrumentMapper with RPCS3.
  • A status label has been added above the Start button to explain why the Start button may be disabled, guiding you in what steps need to be taken to get it enabled.
  • The Riffmaster now has special handling in ViGEmBus mode to map its joystick to the left stick on Xbox 360 controllers.
    • This mapping does not happen in vJoy mode, as the current setup for vJoy does not have enough axes configured to allow mapping the stick, and changing it would necessitate re-configuring and rebinding controls, which I don't feel like making people do. If this mapping is desired, let me know and I'll consider changing this.
    • The mapping also does not apply to RPCS3 compatibility mode, as there is no equivalent on a PS3 Rock Band guitar that it could be mapped to. If this mapping is desired, let me know.

Changes

  • The USB backend is no longer enabled by default, you must enable it explicitly.
  • The Configure Devices button has been renamed to Configure USB Devices to help clarify what its purpose is.
  • ViGEmBus mode no longer uses a hardware-accurate mapping, and instead maps drums and cymbals fully separately.
    • You will need to remap your controls after this change! Also, if you have a second kick pedal, you will not be able to map it in Clone Hero v1.0.0.4080-final without doing the workaround for mapping axis inputs. This is a concession that had to be made to allow cymbals to be mapped fully individually.
  • USB devices are now restarted when hitting Start or Stop, to ensure proper initialization and function of devices.
    • This comes with a message in the console to indicate what is going on, along with a note to reconnect the device if the process takes longer than 15 seconds or so. (It should realistically take less than 5 seconds.)
  • Some threading locks have been added to the logging code. Hopefully this fixes the program locking up when enabling logging while using USB devices.
  • The verbose error message setting is now a more general verbose message setting. Some messages which were displayed previously are now hidden behind this setting, to reduce console output clutter.
  • A modified version of ViGEm.NET is now used to attempt to fix some error handling oversights. This only affects a very particular edge-case, and should result in correct error messages for that case.

Fixes

  • The Configure USB Devices button is now disabled when hitting the Start button.
  • An issue with the initialization sequence of USB devices has been fixed (tl;dr there was a 1 in 254 chance that a device would actually initialize properly, depending on when it was plugged in).
  • Controller emulation mode changes now apply correctly to USB devices, and no longer require a restart to take effect.
  • The program window no longer freezes when the "Show packets" option is enabled.
  • A retry mechanism has been implemented for the initialization sequence for USB devices. This should help with some USB device issues; it helped a lot with the gamepad I test with locally after it suddenly started missing some packets in initialization.

v4.2.0 Pre-Release 4: ViGEmBus error handling fixes

27 May 06:28
987a851
Compare
Choose a tag to compare

This release brings in a modified version of ViGEm.NET to attempt to fix some error handling oversights. This shouldn't have any noticeable effects for a majority of people; this release is primarily just a test to help reveal an unknown underlying issue that one particular user is experiencing.

v4.2.0 Pre-Release 3: More fixes and things

24 May 19:04
9cd9799
Compare
Choose a tag to compare

Fixes

  • I forgot to make a change to the Pcap backend that makes inputs work correctly after some previous refactors that occurred. Whoops!

Changes

  • Some threading locks have been added to the logging code. Hopefully this fixes the program locking up when enabling logging while using USB devices.
  • The verbose error message setting is now a more general verbose message setting. Some messages which were displayed previously are now hidden behind this setting, to reduce console output clutter.

v4.2.0 Pre-Release 2: Fix for an error

09 May 03:23
03365b6
Compare
Choose a tag to compare
Pre-release

This release fixes a null reference exception that would happen whenever a guide button press packet was received during device initialization.

This does not fix any of the issues people have been having with driver switching, unfortunately I'm not sure what I can do to address those. It also does not otherwise target any Riffmaster-specific fixes, a lot of the issues are difficult to debug without having the hardware on-hand.

v4.2.0 Pre-Release 1: USB fixes and Riffmaster joystick support!

25 Apr 05:09
03365b6
Compare
Choose a tag to compare

Yes I skipped the full release for v4.1.0, didn't realize until making this release lol

Additions

  • A new status label has been added above the Start button to explain why the Start button may be disabled, guiding you in what steps need to be taken to get it enabled.
  • The Riffmaster now has special handling in ViGEmBus mode to map its joystick to the left stick on Xbox 360 controllers.
    • This mapping does not happen in vJoy mode, as the current setup for vJoy does not have enough axes configured to allow mapping the stick, and changing it would necessitate re-configuring and rebinding controls, which I don't feel like making people do. If this mapping is desired, let me know and I'll consider changing this.
    • The mapping also does not apply to RPCS3 compatibility mode, as there is no equivalent on a PS3 Rock Band guitar that it could be mapped to. If this mapping is desired, let me know.

Changes

  • Neither the Pcap nor USB backends are enabled by default anymore, you must enable one or the other.
  • The Configure Devices button has been renamed to Configure USB Devices to help clarify what its purpose is.
  • ViGEmBus mode no longer uses a hardware-accurate mapping, and instead maps drums and cymbals fully separately.
    • You will need to remap your controls after this change! Also, if you have a second kick pedal, you will not be able to map it in Clone Hero v1.0.0.4080-final without doing the workaround for mapping axis inputs. This is a concession that had to be made to allow cymbals to be mapped fully individually.
  • USB devices are now restarted when hitting Start or Stop, to ensure proper initialization and function of devices.
    • This comes with a message in the console to indicate what is going on, along with a note to reconnect the device if the process takes longer than 15 seconds or so. (It should realistically take less than 5 seconds.)

Fixes

  • The Configure USB Devices button is now disabled when hitting the Start button.
  • An issue with the initialization sequence of USB devices has been fixed (tl;dr there was a 1 in 254 chance that a device would actually initialize properly, depending on when it was plugged in).
  • Controller emulation mode changes now apply correctly to USB devices, and no longer require a restart to take effect.

v4.1.0 Pre-Release 1: RPCS3 Compatibility Mode

20 Mar 06:51
81f2d6e
Compare
Choose a tag to compare

Pre-release for testing.

This release adds an RPCS3 compatibility mode for the ViGEmBus backend, at the request of the MiloHax community. This mode changes the mappings to eliminate the need to remap controls when using RB4InstrumentMapper with RPCS3.

v4.0.4: Fix vJoy Mode

21 Jan 07:07
2f8a00a
Compare
Choose a tag to compare

This fixes vJoy mode using the ViGEmBus mappers instead of the vJoy ones, apparently this has been broken for 5 months now and I never noticed lol

v4.0.3: Actually fix wireless legacy drums lol

15 Dec 13:03
1a89231
Compare
Choose a tag to compare

Fix one issue, and another reveals itself. In theory everything should have been working correctly in the previous version, but seems like it just didn't for some reason. A new observation in the data that gets sent led to changing how the device type is detected, and that seems to have fixed it. Hopefully now everything should be all good!

On the development side of things, I implemented a basic packet log replayer to help with debugging future issues like this. Using it, any Xbox One controller can be effectively emulated within the program, so long as the descriptor and logs for it are provided. Very helpful for these situations, though it's not meant for general use.