libretro / libretro/RetroArch

Loading archived/compressed ROMs via subsystems

Open
#15,416 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

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

I've only tested this using the SameBoy core, but I believe the issues lie in RetroArch, not the core.

There's two different issues that happen here:

  1. When selecting an archive via the Subsystems menu, you're given the choice to browse or load the archive. Choosing to load the archive immediately starts the content as if you had loaded it normally, rather than adding it within the Subsystems menu (not sure what the correct terminology is here).
  2. If you choose to browse the archive instead, you can select the ROM contained within the archive and this is loaded correctly. However, this causes another issue. RetroArch no longer remembers the original directory of a ROM loaded this way, and if you use the settings to sort saves or states into folders based on the content directory, it will not do so, rather saving the data to the respective parent directories. Consequently, this also means the existing save/state data won't be read when launching either.
Expected behavior

Either loading an archive functions as expected, which should resolve the second issue on its own, as loading unarchived ROMs functions as expected; or the content directory of the archive is remembered when selecting a ROM within an archive.

Actual behavior

Archives aren't loaded correctly within the subsystem menu and browsing within the archive as a workaround introduces saving issues when certain settings are used.

Steps to reproduce the bug
  1. Enable sorting saves and states into folders based on content directory.
  2. Attempt loading an archive directly via the Subsystems menu to observe issue 1, or browse within the archive and select the ROM directly to continue to issue 2.
  3. Repeat (if needed such as when using link feature in SameBoy).
  4. After the requisite ROMs are loaded, launch the content from the Subsystems menu.
  5. Save a state and wait for save data to be saved as well.
  6. Browse to the states and saves directories and note that the generated files are not sorted by content directory.
Bisect Results

Haven't tested

Version/Commit

You can find this information under Information/System Information

  • RetroArch: 1.15.0
Environment information
  • OS: Android 13/One UI 5.1

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 reproducing the archive-loading paths from the Subsystems menu on Android 13 with content-directory sorting enabled. Compare direct archive loading with browsing to the ROM, then inspect where subsystem content paths and save/state locations are selected. Done means archives load through subsystems correctly and existing or newly created save/state files use the archive's content directory.

Written by the indexing model from the issue text.

Assessment

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