Skip to content
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

Issue with bluetooth gamepad #56

Closed
altamir-uab-ufscar opened this issue Apr 19, 2024 · 5 comments
Closed

Issue with bluetooth gamepad #56

altamir-uab-ufscar opened this issue Apr 19, 2024 · 5 comments
Assignees
Labels
bug Something isn't working

Comments

@altamir-uab-ufscar
Copy link

Jazz² Resurrection version

2.6.1

System information

Raspberry Pi 4, Raspbian 64-bit

Issue description

Hi. It seems there is something messing with the input. Wherever I play Jazz 2 with a Bluetooth gamepad and with the default assignment, Jazz keeps going left. Workaround is to unmap the default controls for the gamepad.

Steps to reproduce

Build Jazz² Ressurrection as usual and start the game with default controls assigned to a bluetooth gamepad.

@altamir-uab-ufscar altamir-uab-ufscar added the bug Something isn't working label Apr 19, 2024
@deathkiller deathkiller self-assigned this Apr 19, 2024
@deathkiller
Copy link
Owner

It depends on your bluetooth gamepad. Please attach game log (from terminal), so I can take a look.

@altamir-uab-ufscar
Copy link
Author

Partial log follows:

void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_red_hor.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_red_hor.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_green_hor.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_green_hor.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_blue_hor.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_blue_hor.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_red_ver_reverse.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_red_ver_reverse.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_green_ver_reverse.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_green_ver_reverse.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_blue_ver_reverse.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_blue_ver_reverse.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_2.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_2.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring_ver_down.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring_ver_down.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Spring/spring.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Spring/spring.wav" closed
virtual void Death::IO::FileStream::Close() #> File "Content/Metadata/Object/Spring.res" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Metadata/Object/Checkpoint.res" opened
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Object/checkpoint.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Object/checkpoint.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Object/checkpoint_open.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Object/checkpoint_open.wav" closed
virtual void Death::IO::FileStream::Close() #> File "Content/Metadata/Object/Checkpoint.res" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Metadata/Collectible/Carrot.res" opened
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Pickup/carrot.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Pickup/carrot.aura" closed
virtual void Death::IO::FileStream::Close() #> File "Content/Metadata/Collectible/Carrot.res" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Metadata/Collectible/Coins.res" opened
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Pickup/coin_gold.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Pickup/coin_gold.aura" closed
virtual void Death::IO::FileStream::Close() #> File "Content/Metadata/Collectible/Coins.res" closed
virtual void Death::IO::FileStream::Close() #> File "./Source/Menu.j2b" closed
virtual void Death::IO::FileStream::Close() #> File "/home/altamir/.config/Jazz² Resurrection/Jazz2.resume" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Metadata/UI/MainMenu.res" opened
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/logo.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/logo.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/line.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/line.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/line_arrow.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/line_arrow.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/glow.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/glow.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/episode_complete.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/episode_complete.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/character_art_difficulty_jazz.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/character_art_difficulty_jazz.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/character_art_difficulty_spaz.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/character_art_difficulty_spaz.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/character_art_difficulty_lori.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/character_art_difficulty_lori.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/uac.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/uac.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/storage.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/storage.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_a.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_a.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_b.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_b.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_x.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_x.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_y.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_y.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_left.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_left.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_right.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_right.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_up.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_up.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_down.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_down.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_guide.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_guide.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_back.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_back.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_start.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_start.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_lb.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_lb.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_ls.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_ls.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_lt.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_lt.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_rb.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_rb.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_rs.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_rs.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_rt.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_rt.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_a.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_a.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_b.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_b.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_x.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_x.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_y.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_y.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_left.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_left.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_right.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_right.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_up.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_up.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_down.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_down.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_guide.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_guide.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_back.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_back.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_start.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_start.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/gamepad_alt_misc1.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/gamepad_alt_misc1.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/menu16.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/menu16.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/menu32.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/menu32.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/menu128.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/menu128.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/Lori/corpse.aura" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/Lori/corpse.aura" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_1.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_1.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_2.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_2.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_3.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_3.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_4.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_4.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_5.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_5.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_6.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_6.wav" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Cache/Animations/UI/select_7.wav" opened
virtual void Death::IO::FileStream::Close() #> File "Cache/Animations/UI/select_7.wav" closed
virtual void Death::IO::FileStream::Close() #> File "Content/Metadata/UI/MainMenu.res" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/font_medium.png.font" opened
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "Content/Animations/UI/font_medium.png" opened
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/font_medium.png" closed
virtual void Death::IO::FileStream::Close() #> File "Content/Animations/UI/font_medium.png.font" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "/home/altamir/.config/Jazz² Resurrection/Jazz2.config" opened for write
virtual void Death::IO::FileStream::Close() #> File "/home/altamir/.config/Jazz² Resurrection/Jazz2.config" closed
void Death::IO::FileStream::Open(Death::IO::FileAccessMode) #> File "/home/altamir/.config/Jazz² Resurrection/Jazz2.config" opened for write
virtual void Death::IO::FileStream::Close() #> File "/home/altamir/.config/Jazz² Resurrection/Jazz2.config" closed

I did another remap of the buttons and the issue seemed to wane off, but this ensued:

jazz2.mp4

Some more info:

20240419_22h16m03s_grim
20240419_22h16m07s_grim
20240419_22h16m09s_grim

@deathkiller
Copy link
Owner

It seems to be caused by your PG-90215 Keyboard and Usb Keyboard Usb Keyboard Consumer Control which report a0 axis as -1.0 (which by default means go left). I would need the log from the beginning, partial log is not enough. I can then add these devices to blacklist to ignore it. I don't know what causes the game to detect these 3 devices though.

@altamir-uab-ufscar
Copy link
Author

Thanks. Here the complete log is:
session.log

@deathkiller
Copy link
Owner

It should be fixed in the latest experimental build. There are a lot of other untested changes though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants