Releases: TheNathannator/PlasticBand-Unity
v0.3.2: Crash averted!
Finally nailed down why the crash was happening and found a workaround, now PS4 and Santroller layouts work again!
Changes
- All HID device layouts are now matched against their proper usages in addition to their vendor/product IDs.
- This avoids the crash that PS4 and Santroller layouts were causing on Windows.
- PS4 and Santroller device layouts have been re-enabled now that they no longer crash Unity.
- Reworked Santroller HID device layouts to no longer use a layout finder, instead they register multiple matchers for each variation.
- This will allow the proper layout to persist across editor domain reloads, rather than reverting to the fallback that was previously used for the layout finder.
v0.3.1: Another crash bug...
HID Santroller support had to be temporarily axed since it was causing the same crash bug that PS4 instrument support did. Not very happy about that lol
Fixed
- Some initialization issues when entering Play mode in the editor have been fixed.
- Fixed XInput layout overrides not being evaluated correctly due to a small logic error.
- Temporarily disabled Santroller HID device layouts to avoid the same crash bug as with the PS4 instrument layouts on Windows.
v0.3.0: Santroller and Stage Kit Support!
Whew, this one took quite some effort! It's been very worthwhile.
Added
- sanjay900's Santroller devices are now supported, including their various LED haptics. They can be controlled via the
ISantrollerHaptics
interface, along with several other device type-specific interfaces. (#3 & #4, plus a bunch of work done afterwards) - The Rock Band stage kit is now supported, and can be controlled using the
IStageKitHaptics
haptics interface. - A number of convenience APIs have been added to each of the base device classes, including being able to retrieve controls such as guitar frets or keyboard keys by index or enum, and to get a mask of the state for each of those controls.
- The slider bars on World Tour guitars are now (hopefully) supported.
- I'm currently unable to completely verify this works, needs more verification.
Changed
- The XInput/PS3/Wii (and other non-abstract) device classes have been made internal, as they are effectively only implementation details. There's no benefit to using them over their corresponding base type, and hopefully there never will be.
v0.2.3: Hot-Hot-Hotfix
Quick hotfix for some issues I missed.
Fixed
- Fixed PS3 turntables still having the hardcoded report ID.
- Fixed 4-lane drumkits and RB solo frets not working correctly by removing a hardcoded offset in their layouts.
Added
- Re-added face button controls to FourLaneDrumkit since those are no longer guaranteed to be handled by the pads.
v0.2.2: Fixes for Days
Fun times. Quite a few bugs found, and a crash I can't properly fix (at least currently).
Fixed
- Fixed a newly-discovered edge case with 4-lane drumkit handling that would cause erroneous pad inputs when hitting a cymbal on some kits.
- Fixed some devices incorrectly using "Back" for their
selectButton
display name instead of "Select". - Temporarily disabled PS4 device layouts to avoid a crash bug in the native side of the Unity input system on Windows.
- Fixed a layout issue with PS4 drumkits where the red pad was being triggered with the wrong face button, and yellow and green wouldn't be triggered at all through face buttons. (#5)
- Fixed PS3 and Wii Rock Band keyboards not getting registered correctly.
Changed
- Changed a bunch of device layout names for clarity. For example, instead of
Harmonix Guitar for PlayStation(R)3
, it's now labelledPlayStation 3 Rock Band Guitar
. - Report IDs on HID device layouts are now detected automatically instead of being hardcoded into the layout.
- This ensures everything works correctly on all platforms, and accounts for cases where a report ID may be present where one isn't expected. (Wish the native backend would account for this automatically, but this works too.)
v0.2.1: *heck*
I forgot to initialize some things again lol, this is now fixed.
i should have been in bed hours ago and now i suffer the consequences
v0.2: The HID-ening
late-night release titles go brr
This release adds support for just about every remaining GH/RB HID peripheral, and brings along some more bug fixes!
Additions
The following devices are now supported:
- Wii Rock Band guitars and drumkits
- PS3/Wii Rock Band Pro Guitars, Pro Keyboards, and MIDI Pro Adapters
- PS4 Rock Band guitars and drumkits
- Note that the PS4 PDP drumkit is not supported as part of this, I'm missing the hardware IDs needed to identify it.
- World Tour PC guitar
To support the PS4 RB drumkit correctly, a new ButtonAxisPair control type has been added, which allows an axis and a button to function as a single axis/button.
Fixes
- Fixed the layouts for PS3 drumkits and turntables not being initialized.
- Fixed the layouts for Xbox 360 Pro Guitars having some incorrect offsets.
- Fixed the layouts for Xbox 360 keytars potentially having incorrect offsets.
- Fixed the solo fret controls on PS3/Wii Rock Band guitars having the wrong offset.
- Rock Band keyboards now have (hopefully) the correct normalization applied to the analog pedal input.
- Fixed some specific-platform device classes being incorrectly marked as internal instead of public.
v0.1.2: Additional v0.1 bugfixes
Minor bugfix release for other issues present in v0.1.
Fixes
- Fixed PS3/4 GHL guitar strumbar inputs being flipped.
- Fixed PS4 GHL guitar face button mappings (Start, Hero Power, GHTV button, d-pad center).
v0.1.1: Hotfix for v0.1.0
It ain't a proper first release without following it up with a hotfix lol
This release fixes some moderate issues in v0.1.0.
Fixes
Various controls did not function correctly due to assumptions I made about how aliases and inheritance with controls work. To fix this, the following changes were made:
- Replaced all instances of aliasing with dedicated controls.
- On 5-fret guitars,
strumUp
andstrumDown
aliases ondpad/up
anddpad/down
have been removed, and newstrumUp
andstrumDown
controls that replicatedpad/up
anddpad/down
have been added in their place. - On DJ Hero turntables, the
euphoria
alias onbuttonNorth
has been replaced with a dedicatedeuphoria
control that duplicatesbuttonNorth
.
- On 5-fret guitars,
- Guitar Hero guitars:
- The slider control has been reworked so that instead of being one control with 5 child controls, it's simply one control used 5 times in the main layout.
GuitarHeroSliderSegmentControl
has been removed,GuitarHeroSliderControl
now inherits fromButtonControl
, and theSliderFret
enum previously exposed by it is now private, as it no longer has any public use.
- The slider control has been reworked so that instead of being one control with 5 child controls, it's simply one control used 5 times in the main layout.
- 4-lane drumkits:
FourLanePadsControl
has also been reworked to remove its child controls.FourLanePadControl
has been removed,FourLanePadsControl
now inherits fromButtonControl
, and theFourLanePad
enum previously exposed by it is now private, as it no longer has any public use.
Additionally:
- XInputProGuitar was incorrectly inheriting from RockBandGuitar instead of ProGuitar.
- The PS3 drumkit used the wrong byte offset for its
FourLanePadsControl
.
v0.1.0: First Release!
🎉🎊 4 months and 133 commits after starting, it's time for the first release! Excited to get this out finally lol
This version supports the following devices:
- Guitar Hero 5-fret guitars
- Xbox 360 (Windows only)
- PS3
- Rock Band 5-fret guitars
- Xbox 360 (Windows only)
- PS3
- 6-fret guitars
- Xbox 360 (Windows only)
- PS3/Wii U
- PS4
- Rock Band drumkits
- Xbox 360 (Windows only)
- PS2/PS3
- Guitar Hero drumkits
- Xbox 360 (Windows only)
- PS2/PS3
- DJ Hero turntables
- Includes euphoria light toggling support!
- Xbox 360 (Windows only)
- PS3
- Rock Band keyboards
- Xbox 360 (Windows only)
- Rock Band Pro Guitars
- Xbox 360 (Windows only)
Some of these devices have missing features, but all of their core features are supported. More devices to be supported soon™!