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

Cannot play steamdeck with gamepad controls #466

Open
fire opened this issue Dec 19, 2024 · 1 comment
Open

Cannot play steamdeck with gamepad controls #466

fire opened this issue Dec 19, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@fire
Copy link
Member

fire commented Dec 19, 2024

Issue description

I cannot play the steam deck with gamepad controls

Steps to reproduce

  1. turn on the steam deck
  2. upload v-sekai from Windows Steam Devkit
  3. launch v-sekai

We can work around this by using the Steamdeck mouse and keyboard emulation.

Minimal reproduction project (For SDK or engine issues)

https://github.com/V-Sekai/v-sekai-game/archive/0a8d2101a0c92341333ad4c351c57dd5c73d3411.zip

Using a released version?

No

What OS? Any other relevant information? (V-Sekai version, Godot revision, System information)

Steamdeck

@fire fire added the bug Something isn't working label Dec 19, 2024
@dragonhunt02
Copy link
Contributor

dragonhunt02 commented Jan 25, 2025

We should check return value of get_connected_joypads() on Steam Deck first.

setup_meta_action_input_map()
set_active(true)
set_invert_look_x(invert_look_x)
set_invert_look_y(invert_look_y)
if Input.get_connected_joypads().size() == 0:
pass # No joypads connected
else:
for joypad in Input.get_connected_joypads():
var guid: String = Input.get_joy_guid(joypad)
connected_joypads[joypad] = JoyPadInfo.new(input_manager_const.get_joy_type_from_guid(guid))
add_actions_for_input_device(joypad)

I think setup_meta_action_input_map is erasing joypad mappings

if input_event is InputEventJoypadButton or input_event is InputEventJoypadMotion:
# TODO: currently only supports actions inputs defined as ALL
if input_event.device == -1:
input_meta_actions[action].push_back(input_event)
InputMap.action_erase_event(action, input_event)

If get_connected_joypads() returns nothing there will be no bound actions

As test you could comment out line 305

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