libretro / libretro/RetroArch

[Feature Request] SOCD Cleaner as an input config option

Open
#18,345 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

This feature request has been created and discussed before in #6715, but with no further progress

Description

SOCD stands for simultaneous opposite cardinal direction. Basically, if you press "left" and "right" at the same time or "left" while holding "right", and vise versa. Every game handles it differently. Some set such cases to "neutral", some have "last win", and some games just don't know what to do and do whatever.

The idea is to have an option in RetroArch that a player can toggle to get the behavior a player want, especially for keyboard players

Reason
  1. Inputs like half circle forward + punch & half circle back + punch are very hard to execute for keyboard players while playing fighting games in cores like ps2.
  2. Left+Right or Up+Down buttons being pressed together might crash some games
  3. Although there are many cores have already implemented a solution: Mame, Fbneo, dreamcast, some cores like ps2 haven't yet, and Implementing this in the retroarch frontend would be more optimal than doing it in every single core like @andres-asm said in #6715

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 by reviewing the prior discussion in issue #6715 and the referenced MAME, FBNeo, and Flycast input implementations. Identify the RetroArch frontend input configuration entry points and determine how the option should expose selectable SOCD behavior; done means the setting is available to players and produces the chosen behavior for opposing directions, including in cores such as PS2.

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
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.