libretro / libretro/RetroArch

Driver rescan (Bluetooth, Network/WiFi)

Open
#17,364 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Is there an existing issue for this?
  • This is a bug in RetroArch frontend
  • I have searched the existing issues
Description

Bug Behavior

WiFi and Bluetooth lists are static upon initial population. If new devices or networks show up later to the OS for whatever reason, they are not seen in the list without restarting retroarch.

Context

If running retroarch as the only service on a minimal OS, such as on retroPi or any similar target based on the meta-retro yocto layer, the wifi/bluetooth drivers are the only way to configure network/bluetooth devices. If the desired network or bluetooth device is missed in the initial scan for whatever reason (poor signal, not yet powered on, etc.), the app or device would need to be restarted. Overall, this is a pretty poor experience.

From a scan of the code, my guess is that a native implementation would just modify this and [this]https://github.com/libretro/RetroArch/blob/master/menu/menu_displaylist.c#L7514) to always retry at an interval. I'm unclear if the menu item list needs to be cleared prior to population due to such a change.

I recognize that this could be considered a feature request, however I used the bug template for two reasons:

  1. The bug template proved more useful as a framework for writing
  2. For my use-case, at least the bluetooth feature is basically useless without a fix to this, which... seems like enough of a bug to me

A few notes about addressing this:

  1. I can't think of any reason this would need to be filtered behind a feature/configuration flag, but I'm open to other perspectives if for some reason someone disagrees.
  2. I'd be happy to write this, but would like some initial input/feedback.
Expected behavior

Wifi and bluetooth scan results update, showing newly visible networks/devices as they appear

Steps to reproduce the bug
  1. Launch retroarch (or power on device running retroarch as only target)
  2. Navigate to bluetooth menu
  3. Scan for bluetooth devices
  4. After scan completes, power on new bluetooth device
  5. Observe list of devices never updates to include new device
Version/Commit

1.18.0

Bisect Results

No response

Check in the nightly version

Yes, this is reproduced in the nightly build

Platform & operating system

Radxa NIO 12L: Yocto Linux

Affected Cores

No response

Environment information
  • Distro: Yocto (scarthgap)
  • kernel: v6.6.22 (Mediatek Fork)
  • Platform: Radxa NIO 12L (Mediatek Genio 1200)
  • Graphics: Panfrost + Mesa 24.0.7
Relevant log output

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in menu/menu_displaylist.c at the two scan-related locations linked in the issue, around lines 7449 and 7514, and trace how Bluetooth and WiFi results are populated. Reproduce the listed Bluetooth scenario, determine whether the menu list must be cleared before rescanning, and verify that newly visible devices and networks appear without restarting RetroArch.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.