libretro / libretro/RetroArch

One core's temporal control mappings are shared to other cores' control mappings

Open
#16,612 3 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

First and foremost consider this:

  • Only RetroArch bugs should be filed here. Not core bugs or game bugs
  • This is not a forum or a help section, this is strictly developer oriented

Description

If I setup a Core's specific control mappings, and I don't save them, if I load another core, the same control mappings will be applied, even if the second core doesn't have the buttons the first core has (in which case, they will be blanked).

If I setup a core's specific controls, I expect them to remain only in that combination of core/content, while I'm playing it, since they're temporal and I'm not saving them.

Expected behavior

If I close the core/content after changing its controls, and load another core with another content, the default mapping should be applied, since the controls I had before were for a different core and different content, and has nothing to do with the new core/content I'm loading.

Actual behavior

The controls I set up in Core A are passed into Core B, even though I didn't save them, and even if I did, they only would apply with Core A.

Steps to reproduce the bug
  1. Load any content with any core. In this case, I'll load Super Mario 64 DS with Desmume.
  2. I go to the Quick Menu->Controls->Port 1 Control and I'll set up that the Down button will trigger the DS' Up action, and that the Up button will trigger the DS' Down action.
image
  1. This is just a temporal assignation. I'm only using it with this core and this game, right now. I don't save the remap, and I close the content.
  2. Next, I'll load Pokémon Crystal with Gambatte.
  3. If I go to the Quick Menu->Controls->Port 1 Control I'll see that the mapping I set up in Desmume with Mario 64 DS, has also been applied here:
image

But that doesn't make sense. The mappings I did were for Mario 64 DS/Desmume, and were only temporal, since I didn't save them for that game or that core. It doesn't make sense that if I open Pokemon Crystal/Gambatte, the same mappings will appear. The defaults should appear (Up is Up and Down is Down), until I do a temporal mapping and save them.

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.18.0
Environment information
  • OS: macOS

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

Reproduce the issue by changing Port 1 Control mappings in the Quick Menu for one core/content pair, closing it, and loading another pair. Trace where the temporal mapping state is retained across core/content changes; done when the second pair shows its defaults unless a mapping was saved for it.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
frontend
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.