docs docs docs
This commit is contained in:
parent
39e576f648
commit
db32f4a41a
24
README.md
24
README.md
|
@ -150,7 +150,7 @@ in the code!
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| TX0 | no connection |
|
| TX0 | no connection |
|
||||||
| RX1 | no connection |
|
| RX1 | no connection |
|
||||||
| 2 | 2x kick |
|
| 2 | 2x kick / hat (see below) |
|
||||||
| 3 | green |
|
| 3 | green |
|
||||||
| 4 | red |
|
| 4 | red |
|
||||||
| 5 | yellow |
|
| 5 | yellow |
|
||||||
|
@ -163,10 +163,30 @@ in the code!
|
||||||
| 14 | no connection |
|
| 14 | no connection |
|
||||||
| 15 | blue cymbal |
|
| 15 | blue cymbal |
|
||||||
| 18 | yellow cymbal |
|
| 18 | yellow cymbal |
|
||||||
| 19 | hi hat pedal |
|
| 19 | hi hat pedal (see below) |
|
||||||
| 20 | green cymbal |
|
| 20 | green cymbal |
|
||||||
| 21 | no connection |
|
| 21 | no connection |
|
||||||
|
|
||||||
|
### Pedals
|
||||||
|
|
||||||
|
If you only have one pedal,
|
||||||
|
wire it to pin 7.
|
||||||
|
|
||||||
|
If you have two pedals,
|
||||||
|
wire them to 7 and 2.
|
||||||
|
|
||||||
|
If you have three pedals,
|
||||||
|
wire them to 7, 2, and 19.
|
||||||
|
|
||||||
|
Wii Rock Band 3
|
||||||
|
only looks at the 2x kick pin:
|
||||||
|
it provides a checkbox to reassign this to the high hat.
|
||||||
|
Clone Hero
|
||||||
|
will use both the 2x kick and the hi hat.
|
||||||
|
Maybe there is some other game that uses this too.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Bugs / Not Yet Implemented
|
# Bugs / Not Yet Implemented
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
Technical Notes
|
||||||
|
===============
|
||||||
|
|
||||||
|
It took me a lot of time digging around the Internet to find some of this stuff.
|
||||||
|
I'm writing down the highlights here,
|
||||||
|
so that when original sources fall off the net,
|
||||||
|
hopefully at least my notes will still be around.
|
||||||
|
|
||||||
|
|
||||||
Sample Rate
|
Sample Rate
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
@ -76,4 +85,53 @@ I don't know how I can verify that I'm setting this right,
|
||||||
but the `rbdrum2midi` program looks at these bytes to detect hits.
|
but the `rbdrum2midi` program looks at these bytes to detect hits.
|
||||||
I set them to 127 when a hit is detected on the digital pin.
|
I set them to 127 when a hit is detected on the digital pin.
|
||||||
|
|
||||||
Sending these values does not seem to cause problems with my Wii games.
|
Sending these values does not seem to cause problems with my Wii games.
|
||||||
|
|
||||||
|
|
||||||
|
Product ID (PID)
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Nicholas,
|
||||||
|
who did the initial work on the guitar,
|
||||||
|
suggested that PID 0x0005 would get the sketch working as drums.
|
||||||
|
And that was correct:
|
||||||
|
this works great on
|
||||||
|
Wii Rock Band 1 and
|
||||||
|
Wii LEGO Rock Band.
|
||||||
|
|
||||||
|
But it fails in frustrating ways on
|
||||||
|
Wii Rock Band 3:
|
||||||
|
the yellow and blue pads don't navigate menus,
|
||||||
|
and cymbals aren't detected.
|
||||||
|
|
||||||
|
The fix was setting the USB PID to 0x3110.
|
||||||
|
|
||||||
|
|
||||||
|
Drum Velocity
|
||||||
|
--------
|
||||||
|
|
||||||
|
I split the 12 "reserved" bytes from Nicholas's
|
||||||
|
`struct InstrumentButtonState`
|
||||||
|
into 4 bytes of I-Don't-Know, 4 bytes of velocity,
|
||||||
|
and 4 more bytes of I-Don't-Know.
|
||||||
|
Whenever a pad is hit,
|
||||||
|
I send 127 on the corresponding velocity.
|
||||||
|
|
||||||
|
I did this because a program called `rbdrum2midi`
|
||||||
|
ignores the button press events,
|
||||||
|
and looks only at the velocity values.
|
||||||
|
|
||||||
|
None of the Wii games I have
|
||||||
|
seem to care what these values are set to.
|
||||||
|
|
||||||
|
|
||||||
|
References
|
||||||
|
=========
|
||||||
|
|
||||||
|
The most valuable sources of information I found were:
|
||||||
|
|
||||||
|
* [Nicholas Angle's reverse-engineering write-up](https://www.niangames.com/articles/reverse-engineering-rockband-guitar-controllers)
|
||||||
|
* [Nicholas Angle's guitar controller program](https://github.com/NianZo/WiiGuitarController)
|
||||||
|
* [Clone Hero Wiki: Drum Mapping Guide](https://wiki.clonehero.net/books/guitars-drums-controllers/page/drum-mapping-guide)
|
||||||
|
* [rbdrum2midi source code](https://github.com/rbdrum2midi/rbdrum2midi)
|
||||||
|
|
Loading…
Reference in New Issue