libretro / libretro/RetroArch

Controller core-specific configurations

Open
#15,849 0 comments 0 reactions 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

Description

RetroArch maps a connected controller to an internal controller (I think it's called retropad), and then maps the retropad to the "real controller".

This works pretty well, but there are some dge cases.

For example, the GameBoy Advance has following input buttons:

  • A
  • B
  • L
  • R
  • Start
  • Select
  • D-PAD

The wiimote has

  • A
  • B
  • 1
  • 2
  • +
  • -
  • D-PAD

and HOME

The retropad has a superset; at least

  • A
  • B
  • X
  • Y
  • L
  • R
  • Start
  • Select
  • D-PAD

All button of the wiimote are mapped to the retropad, the A.B,1,2 buttons of the wiimote are mapped to A,B,X,Y

Which means, that when playing GBA with a wiimote, L,R cannot be used, and the buttons mapped to X,Y are "lost"/effectively unused.

I'm not suggesting that the default mappings of the wiimote (or other remotes) should be changed, they might make sense for other platforms, but do not make sense for the GBA.

The same issue might apply with other combinations of controllers and cores, it is not necessarily wiimote/GBA specific.

Expected behavior

Being able to configure retroarch in such a way that when using any wiimote with a GBA core, to map some buttons to L,R instead of X,Y.

Actual behavior

Either the buttons are remapped globally (for all cores), or L,R cannot be used with a wiimote.

Steps to reproduce the bug
  1. Use a wiimote
  2. Do not change the global mapping
  3. Try to use L,R with a GBA core
Bisect Results

AFAIK the behavior is unchanged.

Version/Commit

You can find this information under Information/System Information

RetroArch - Frontend for libretro
Version: 1.16.0 (Git 14cb373) Oct 2 2023
Compiler: GCC (9.4.0) 64-bit

Environment information
  • OS: Debian

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

No source file, test, or entry point is named. Start by locating RetroArch's controller-mapping configuration and how it identifies cores; done means a wiimote can map its buttons to GBA L/R on a per-core basis without changing mappings for other cores.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.