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

[RetroArch] Rumble only works on RetroArch Controller #1 #844

Open
Psithief opened this issue Apr 9, 2022 · 2 comments
Open

[RetroArch] Rumble only works on RetroArch Controller #1 #844

Psithief opened this issue Apr 9, 2022 · 2 comments

Comments

@Psithief
Copy link

Psithief commented Apr 9, 2022

Description

Rumble is not sent to the Controller marked by RetroArch Port #2 when Mapped to Core Port #1.

Expected behavior

The controller should vibrate when commanded even if not connected as Controller Port 1 in RetroArch.

Actual behavior

The controller will not vibrate unless connected to RetroArch as Controller Port 1.
If the only input mapped is from Controller Port 2 to Core Port 1, Controller Port 1 will receive the vibration meant for Controller Port 2.

Steps to reproduce the bug

  1. In RetroArch > Settings > Input
    • Go to Menu Controls
      • Set "Unified Menu Controls" to OFF to retain keyboard control over menus for testing.
    • Set "Maximum Users" to 2
    • Set "Autoconfig" to OFF.
    • Go to "Port 1 Controls"
      • Set "Device Index" to Disabled
      • Remove all bindings
    • Go to "Port 2 Controls"
      • Set "Device Index" to the rumble-capable controller
      • Set up the button controls using the controller
  2. Start any content with on-demand vibration (in the opening menu)
  3. In RetroArch > Quick Menu > Controls
    • Go to Port 1 Controls
    • Change "Mapped Port" to any number except 1.
    • Device Type does not matter. (I suggest setting to something other than Dualshock.)
    • Go to Port 2 Controls
    • Change "Mapped Port" to 1.
    • Ensure device type reads Dualshock
  4. In the content, test if the rumble/vibration is working. Test result should be negative (no rumble).
  5. Return to the menu, RetroArch > Settings > Input
    • Go to Port 1 Controls
    • Change Device Index to the same controller as Port 2.
  6. Exit the menu, then test rumble/vibration again. Test result should be positive (rumble works).
    • ( despite no inputs being possible from "Controller Port 1" as all of its controls are unbound and it would still be mapped to something other than "Core Port 1". )
  7. Return to the Menu. RetroArch > Settings > Input
    • Go to Port 2 Controls
    • Change Device Index to Disabled
  8. Return to the content, test the rumble/vibration is somehow still working. Test should be positive.
    • (The controller in RetroArch's controller port 1 vibrates despite not being bound to anything)
  9. Return to the Menu. RetroArch > Quick Menu > Controls
    • Go to Port 2 Controls
    • Change Device Type to something else, the back to Dualshock
  10. Return to the content, test the rumble/vibration is somehow still working. Test should be negative.
    • At this point something has been refreshed in RetroArch?

Note

I used the game Vagrant Story for this test because it has a Vibration option in the title screen that causes the controller to vibrate, and the game only accepts input on (core) port 1.

Version/Commit

Beetle PSX HW (0.9.44.1 88929ae)

Core options

beetle_psx_hw_adaptive_smoothing = "disabled"
beetle_psx_hw_analog_calibration = "disabled"
beetle_psx_hw_analog_toggle = "disabled"
beetle_psx_hw_aspect_ratio = "corrected"
beetle_psx_hw_cd_access_method = "precache"
beetle_psx_hw_cd_fastload = "14x"
beetle_psx_hw_core_timing_fps = "force_progressive"
beetle_psx_hw_cpu_dynarec = "disabled"
beetle_psx_hw_cpu_freq_scale = "100%(native)"
beetle_psx_hw_crop_overscan = "static"
beetle_psx_hw_crosshair_color_p1 = "red"
beetle_psx_hw_crosshair_color_p2 = "blue"
beetle_psx_hw_depth = "16bpp(native)"
beetle_psx_hw_display_internal_fps = "disabled"
beetle_psx_hw_display_vram = "disabled"
beetle_psx_hw_dither_mode = "disabled"
beetle_psx_hw_dump_textures = "disabled"
beetle_psx_hw_dynarec_eventcycles = "128"
beetle_psx_hw_dynarec_invalidate = "full"
beetle_psx_hw_enable_memcard1 = "enabled"
beetle_psx_hw_enable_multitap_port1 = "disabled"
beetle_psx_hw_enable_multitap_port2 = "disabled"
beetle_psx_hw_filter = "xBR"
beetle_psx_hw_filter_exclude_2d_polygon = "disabled"
beetle_psx_hw_filter_exclude_sprite = "disabled"
beetle_psx_hw_frame_duping = "disabled"
beetle_psx_hw_gpu_overclock = "32x"
beetle_psx_hw_gte_overclock = "disabled"
beetle_psx_hw_gun_cursor = "cross"
beetle_psx_hw_gun_input_mode = "lightgun"
beetle_psx_hw_image_crop = "disabled"
beetle_psx_hw_image_offset = "disabled"
beetle_psx_hw_image_offset_cycles = "-19"
beetle_psx_hw_initial_scanline = "0"
beetle_psx_hw_initial_scanline_pal = "38"
beetle_psx_hw_internal_resolution = "8x"
beetle_psx_hw_last_scanline = "239"
beetle_psx_hw_last_scanline_pal = "260"
beetle_psx_hw_line_render = "disabled"
beetle_psx_hw_mdec_yuv = "enabled"
beetle_psx_hw_memcard_left_index = "0"
beetle_psx_hw_memcard_right_index = "1"
beetle_psx_hw_mouse_sensitivity = "100%"
beetle_psx_hw_msaa = "4x"
beetle_psx_hw_negcon_deadzone = "0%"
beetle_psx_hw_negcon_response = "linear"
beetle_psx_hw_override_bios = "disabled"
beetle_psx_hw_pal_video_timing_override = "enabled"
beetle_psx_hw_pgxp_2d_tol = "8px"
beetle_psx_hw_pgxp_mode = "memory only"
beetle_psx_hw_pgxp_nclip = "enabled"
beetle_psx_hw_pgxp_texture = "enabled"
beetle_psx_hw_pgxp_vertex = "enabled"
beetle_psx_hw_renderer = "hardware_vk"
beetle_psx_hw_renderer_software_fb = "enabled"
beetle_psx_hw_replace_textures = "disabled"
beetle_psx_hw_scaled_uv_offset = "enabled"
beetle_psx_hw_shared_memory_cards = "disabled"
beetle_psx_hw_skip_bios = "enabled"
beetle_psx_hw_super_sampling = "disabled"
beetle_psx_hw_track_textures = "disabled"
beetle_psx_hw_use_mednafen_memcard0_method = "libretro"
beetle_psx_hw_widescreen_hack = "enabled"
beetle_psx_hw_widescreen_hack_aspect_ratio = "16:9"
beetle_psx_hw_wireframe = "disabled"

Environment information

  • Frontend: RetroArch 1.10.2
  • OS: Windows 10

Other

  1. This may explain PSX HW controller can't rumble on Win10 #484 if the reporter had the rumble-capable controller connected as Controller Port 2 instead of Controller Port 1.
@Psithief
Copy link
Author

Psithief commented Apr 10, 2022

The issue probably lies in RetroArch, as the behaviour is similar on every PSX core tested.

@Psithief
Copy link
Author

See also?:
libretro/RetroArch#12436

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant