libretro / libretro/RetroArch

[Windows] Interface does not get status of ROM with pathname bigger than ~254 characters

Open
#11,704 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug: file i/o platform: windows
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Description

If I run a ROM which has a path name longer than 254 characters, the core will run the ROM correctly but the interface will not detect that it is running, for example it will be missing most options in the quick menu like close content, load/save state, etc.

It's important to mention that when it comes to compressed ROMs, the total length of the path name will include both archive and ROM file: FOLDER_PATH\ROM_ARCHIVE.ZIP#ROM_FILE.SFC

The example above is 40 chars long, includes backslash that separates each folder, archive filename and extension, hash symbol that separates archive from ROM filename, and finally the ROM filename and extension.

Expected behavior

RetroArch interface should be able to detect that the game is running when path names are longer than usual. I am not sure if Windows is the barrier here, but since the core has no issue running it I would assume the interface should also be able to handle it.

Actual behavior

ROM loads fine into the core but then the interface has no awareness about the running ROM, can't restart, nor close, nor save/load state, nor access any other game specific option.

Steps to reproduce the bug
  1. Make a pathname that is 255 chars long or more;
  2. Load ROM;
  3. Get back to the quick menu, it will not be seeing the game as running even though it is.
Bisect Results

Probably has always been present under Windows.

Version/Commit
  • RetroArch: v1.90/6388872a54
Environment information
  • OS: Windows 10 x64 Build 19042

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 on Windows by reproducing the issue with a ROM path of at least 255 characters, including the archive and ROM filename when compressed. Trace how the interface determines whether a ROM is running; done means the quick menu detects the game and exposes close, restart, and save/load state options.

Written by the indexing model from the issue text.

Assessment

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