libretro / libretro/RetroArch

[BUG] lightgun/pointer devices don't work properly with rotation

Open
#13,653 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug: udev input platform: linux
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

RETRO_DEVICE_LIGHTGUN and RETRO_DEVICE_POINTER are device types that send coordinates to the core.

If the frontend applies a rotation, the coordinates aren't transformed by the frontend (retroarch), and the backend (core) can't transform them either because he is unaware of the applied rotation. Having the frontend handles the transformation would be the prefered solution here.

This was tested on linux with udev as input driver, but i doubt the result will be any different with other os/drivers.
Tested with FBNeo :

  • on vertical games (bronx is the only lightgun vertical game i know)
  • on horizontal games turned vertical through the Vertical mode core option
  • on horizontal games turned vertical through Settings > Video > Output > Video Rotation

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 files, tests, or entry points are named. Trace how RETRO_DEVICE_LIGHTGUN and RETRO_DEVICE_POINTER coordinates move through the frontend when Video Rotation or a core vertical option is active, comparing the tested FBNeo cases. Done means rotated coordinates reach the core correctly across the described rotation paths.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.