mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-10 20:13:46 -06:00
fix: ask for no file the emulator installs
The pack leaves out what an emulator installs itself (validation.deliverable); the truth did not. RetroPie's gngeopi help asked users to copy gngeo_data.zip, which make install puts in the package's data directory, and amiberry's whdboot tree, scummvm's extra data and dosbox-x's FREECG98.BMP went into platform lists as files to bring. The truth applies deliverable per platform and per build: an entry nobody has to bring is kept and marked bundled, never added, still corrected where the platform declares it. A rebuilt archive is installed only when every member is. The runner written beside an addition is the build that needs the file (_brought_by), and the RetroPie sentence names only what its package's core must be given.
This commit is contained in:
1 parent
9653385797
commit
a5d7a6572d
6 files changed
+180
-8
No files matched your search
@@ -564,6 +564,9 @@ def build_native_model(
|
||||
if is_label(truth_entry):
|
||||
report.labels += 1
|
||||
continue
|
||||
# The emulator installs it: no user is asked to bring it.
|
||||
if truth_entry.get("bundled"):
|
||||
continue
|
||||
|
||||
# A file another core's entry already claimed is still the
|
||||
# platform's file, not a new one: scph101.bin, declared by two
|
||||
@@ -616,7 +619,9 @@ def _attach_runners(systems: dict[str, NativeSystem], scraped: dict | None) -> N
|
||||
The platform lists its cores by its own names (Batocera's
|
||||
`mednafen_psx`, Recalbox's `mednafen_psx`), our truth by profile key
|
||||
(`beetle_psx`), and a profile's `cores:` holds the names it answers to.
|
||||
The build a platform runs an emulator as decides the runner.
|
||||
The build a platform runs an emulator as decides the runner, and the
|
||||
truth says which build needs the file (`_brought_by`): ROCKNIX's
|
||||
armsx2-sa installs pcsx2/resources itself, the libretro build does not.
|
||||
"""
|
||||
if not scraped:
|
||||
return
|
||||
@@ -631,10 +636,18 @@ def _attach_runners(systems: dict[str, NativeSystem], scraped: dict | None) -> N
|
||||
if fe.platform is not None or not fe.truth:
|
||||
continue
|
||||
runners: list[tuple[bool, str]] = []
|
||||
for key in sorted(fe.truth.get("_cores") or ()):
|
||||
brought = fe.truth.get("_brought_by")
|
||||
layers = (
|
||||
sorted((key, build == "standalone") for key, _, build in
|
||||
(b.partition(":") for b in brought))
|
||||
if brought is not None
|
||||
else [(key, runs_standalone(key, profiles.get(key, {}), standalone))
|
||||
for key in sorted(fe.truth.get("_cores") or ())]
|
||||
)
|
||||
for key, as_standalone in layers:
|
||||
profile = profiles.get(key, {})
|
||||
names = [key, *(str(c) for c in profile.get("cores") or [])]
|
||||
if runs_standalone(key, profile, standalone):
|
||||
if as_standalone:
|
||||
name = next((n for n in names if n in standalone), None)
|
||||
runner = (True, name) if name else None
|
||||
else:
|
||||
|
||||
Reference in new issue
Block a user