fix: place Cemu's MLC where RetroDECK sets it

RetroDECK sets mlc_path to $bios_path/cemu (cemu/component_prepare.sh:14,
29), which replaces the MLC Cemu reads under its user data directory
(src/config/CemuConfig.cpp:25-26, ActiveSettings.cpp:295-320). The
profile names that key, so the layout's mlc01/ folder is placed in
bios/cemu. Two readers kept the binding from reaching the manifest:

- a moved entry kept its standalone load_from, data_dir, and the gap
  report set the MLC aside as read outside the system directory. The
  platform's folder now replaces the build's own root.
- an entry read outside the BIOS tree was no longer offered to the
  launcher layer, so RetroDECK's link of keys.txt to bios/cemu/keys.txt
  went unserved. It is offered again, fills no destination by its own
  path, and a launcher place it fills settles it.

The RetroDECK manifest gains the 55 MLC files under bios/cemu/. It
drops the root copies of keys.txt, otp.bin, seeprom.bin,
shareddata.bin, cafeLibs/ and resources/sharedFonts/, which standalone
Cemu reads in the Flatpak's $XDG_DATA_HOME/Cemu and names them as read
outside the BIOS folder. The libretro copies under bios/Cemu/ stay.
This commit is contained in:
Abdessamad Derraz committed 2026-11-10 12:20:55 +01:00
1 parent 0e0e24d905
commit 74ef0a37d5
5 files changed
+38 -4

No files matched your search

+8
View File
@@ -3117,6 +3117,14 @@ def platform_layouts(
tree, path = placed
moved = {**f, "standalone_path": path,
"layout_path": standalone_layout_path(f, profile)}
if f.get("load_from"):
# The build's own root no longer applies: RetroDECK hands
# Cemu's MLC, read from its data directory, to bios/cemu.
load_from = f["load_from"]
moved["load_from"] = {
**(load_from if isinstance(load_from, dict) else {"libretro": load_from}),
"standalone": "system_dir",
}
if tree == "install":
# Below the roms root inside the install tree (AmberELEC's
# /storage/roms): a plain dest the platform prefix skips.