New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guitar Hero "Guitar" support: whammy, tilt and axis #24

Closed
maxill1 opened this Issue Aug 18, 2016 · 4 comments

Comments

Projects
None yet
3 participants
@maxill1

maxill1 commented Aug 18, 2016

Hi,

I tested a Gibson Guitar Hero III controller and "whammy bar" and "tilt" are not recognized/working.

Standing to wikipedia and some other web resources both should be implemented as axis.

I don't know if "tilt" or "whammy bar" are connected to additional axis inside the guitar shell or they're just bond to one of the wiimote's internal axis rotation, but here will follow some observations that may be useful for debug purposes:

  1. X and Y axis movement seems to be bond to their respective rotation, so when i move the little joystick on the guitar, X and Y rotation move along (see images at bottom) instead of when nunchuck is plugged in, where X and Y rotation are indipendent from the nunchuck joystick and follow wiimote internal axis.
  2. Z axis and rotation a constantly on 0.
  3. Not much of an issue but... home button is not working (with guitar plugged 1, 2 and A are remapped to 11, 12 and 13 and don't replicate "green", "red" and "yellow"...so there is no much button left to use...maybe it's a feature)

joystick still
image

Joystick at bottom
image

Joystick at top
image

Joystick at left
image

Joystick at right
image

@jloehr jloehr added this to the 0.3 milestone Aug 18, 2016

@jloehr

This comment has been minimized.

Show comment
Hide comment
@jloehr

jloehr Aug 18, 2016

Owner

The Whammy Bar is mapped to Rotation X, though it seems to not use the full value range. The Extension Report uses 5 bits for it, whereas my driver maps it to 8 bit unsigned. I don't know if the Extension bits are signed or unsigned. Rotation Y is mapped to the analog touchbar on the neck (which is not on the GHIII Guitars). What do you mean by those two follow the Wiimotes internal axis?

Z axis and rotation is not mapped and used for the Guitar. So that is expected behavior.

By tilt do you mean pulling up the neck to activate the star power (or whatever it is called ingame)? The wiki doesn't say anything about tilt. But i would guess they are using the Wiimotes accelerometers for that. I'll put that on the list to add that feature as well.

I checked the button mapping and i figured the Guitars are featuring 14 buttons (Wiimote Core Buttons + Guitar Buttons). Moreover the driver is writing not one but two buttons (B and Home) to static/unused bits, that are therefore not working. So thanks for pointing that out 😄

Owner

jloehr commented Aug 18, 2016

The Whammy Bar is mapped to Rotation X, though it seems to not use the full value range. The Extension Report uses 5 bits for it, whereas my driver maps it to 8 bit unsigned. I don't know if the Extension bits are signed or unsigned. Rotation Y is mapped to the analog touchbar on the neck (which is not on the GHIII Guitars). What do you mean by those two follow the Wiimotes internal axis?

Z axis and rotation is not mapped and used for the Guitar. So that is expected behavior.

By tilt do you mean pulling up the neck to activate the star power (or whatever it is called ingame)? The wiki doesn't say anything about tilt. But i would guess they are using the Wiimotes accelerometers for that. I'll put that on the list to add that feature as well.

I checked the button mapping and i figured the Guitars are featuring 14 buttons (Wiimote Core Buttons + Guitar Buttons). Moreover the driver is writing not one but two buttons (B and Home) to static/unused bits, that are therefore not working. So thanks for pointing that out 😄

@maxill1

This comment has been minimized.

Show comment
Hide comment
@maxill1

maxill1 Aug 19, 2016

Whammy (WB on wiibrew data format table)

If Z axis is unused, could it be a candidate for wammy axis mapping?

Tilt/Star power (WB on wiibrew data format table)

By tilt i mean exactly pulling up to activate the star power.

Considering that we have a wiimote inside the guitar, tilt/star power could be activate by moving the guitar and triggering one of wiimote axis.
Since Y rotation is mapped to TB (the analog touchbar on GHWT controller), and therefore is busy, X rotation could be a candidate.

Anyway there may be something to fix on wiimote axis mapping because with a guitar plugged in it's like wiimotes internal axes rotation replicates wiimote internal axes movement.
Sorry it's hard to explain without visual so I will try with an example:

Nunchuck plugged in:
if i move the analog joystick on nunchuck, X/Y movement coordinates follow my thumb (as it should be) and X/Y rotation stand still (correctly, as i'm not moving the wiimote).

Guitar plugged in:
if i move up the analog joystick on guitar, X/Y movement coordinates follow my thumb (as it should be) but X/Y rotation follow too! (i think not correcly because they behave like if a moved also the wiimote, but i'm not).

In the previous post's images you can see what i mean, i every position (top, bottom, left and right) i didn't move the wiimote (inside the guitar) but X and Y rotation follow the analog joystick somehow .

Home button

B button is hidden inside the guitar shell...no chance to hit, you can spare that 😄
Glad to help

🎸 🎸 🎸 🎸

maxill1 commented Aug 19, 2016

Whammy (WB on wiibrew data format table)

If Z axis is unused, could it be a candidate for wammy axis mapping?

Tilt/Star power (WB on wiibrew data format table)

By tilt i mean exactly pulling up to activate the star power.

Considering that we have a wiimote inside the guitar, tilt/star power could be activate by moving the guitar and triggering one of wiimote axis.
Since Y rotation is mapped to TB (the analog touchbar on GHWT controller), and therefore is busy, X rotation could be a candidate.

Anyway there may be something to fix on wiimote axis mapping because with a guitar plugged in it's like wiimotes internal axes rotation replicates wiimote internal axes movement.
Sorry it's hard to explain without visual so I will try with an example:

Nunchuck plugged in:
if i move the analog joystick on nunchuck, X/Y movement coordinates follow my thumb (as it should be) and X/Y rotation stand still (correctly, as i'm not moving the wiimote).

Guitar plugged in:
if i move up the analog joystick on guitar, X/Y movement coordinates follow my thumb (as it should be) but X/Y rotation follow too! (i think not correcly because they behave like if a moved also the wiimote, but i'm not).

In the previous post's images you can see what i mean, i every position (top, bottom, left and right) i didn't move the wiimote (inside the guitar) but X and Y rotation follow the analog joystick somehow .

Home button

B button is hidden inside the guitar shell...no chance to hit, you can spare that 😄
Glad to help

🎸 🎸 🎸 🎸

@jloehr

This comment has been minimized.

Show comment
Hide comment
@jloehr

jloehr Aug 19, 2016

Owner

Ah ok. I don't have any Guitars so i can't test it out, but it seems to use another data reporting than in the wiki.

B button is hidden inside the guitar shell...no chance to hit, you can spare that

Ah good to know, then i just need to change the current mapping.

Owner

jloehr commented Aug 19, 2016

Ah ok. I don't have any Guitars so i can't test it out, but it seems to use another data reporting than in the wiki.

B button is hidden inside the guitar shell...no chance to hit, you can spare that

Ah good to know, then i just need to change the current mapping.

@aerisarn

This comment has been minimized.

Show comment
Hide comment
@aerisarn

aerisarn Jan 13, 2017

// return whammy bar postion: value ranges from 240 (0xF0) when the bar is at rest
// to 250 (0xFA) when the bar is pressed all the way down.

source here:
https://github.com/jleyrer/WiiGuitarduino/blob/master/wii_guitar_funcs.h

I have a guitar, I will try to polish the driver, right now tilt and whammy are missing. Plus, star power in music games is a discrete event, so I think it's better to map the Z raw force > threshold to an additional button instead of simply reporting the analog value, otherwise you'll have to use a mapping program to make it work with phase shift, for example.

aerisarn commented Jan 13, 2017

// return whammy bar postion: value ranges from 240 (0xF0) when the bar is at rest
// to 250 (0xFA) when the bar is pressed all the way down.

source here:
https://github.com/jleyrer/WiiGuitarduino/blob/master/wii_guitar_funcs.h

I have a guitar, I will try to polish the driver, right now tilt and whammy are missing. Plus, star power in music games is a discrete event, so I think it's better to map the Z raw force > threshold to an additional button instead of simply reporting the analog value, otherwise you'll have to use a mapping program to make it work with phase shift, for example.

@jloehr jloehr modified the milestones: 0.3.1, 0.3 Jul 31, 2017

@jloehr jloehr closed this in 850dae6 Aug 15, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment