From 97eb4835be60545b7bf4e18ef9e6744f1b6fd516 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Sun, 29 Mar 2026 13:07:30 +0200 Subject: [PATCH] feat: add load_from field for non-system_dir files Replaces mode: standalone hack with load_from: save_dir on Panda3DS files. The load_from field documents which libretro directory callback provides the base path (system_dir default, save_dir, content_dir). Pack generator and cross-reference skip files not targeting system_dir. --- emulators/panda3ds.yml | 4 ++-- scripts/generate_pack.py | 4 ++++ scripts/verify.py | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/emulators/panda3ds.yml b/emulators/panda3ds.yml index edaad3d4..17bea7ea 100644 --- a/emulators/panda3ds.yml +++ b/emulators/panda3ds.yml @@ -24,7 +24,7 @@ notes: | files: - name: "aes_keys.txt" path: "Emulator Files/sysdata/aes_keys.txt" - mode: standalone + load_from: save_dir description: "AES encryption keys for decrypting encrypted ROMs" required: false source_ref: "src/emulator.cpp:229,237-238, src/core/crypto/aes_engine.cpp:13-92" @@ -37,7 +37,7 @@ files: - name: "seeddb.bin" path: "Emulator Files/sysdata/seeddb.bin" - mode: standalone + load_from: save_dir description: "Seed database for seed-encrypted games" required: false source_ref: "src/emulator.cpp:230,241-242, src/core/loader/ncch.cpp:78-93" diff --git a/scripts/generate_pack.py b/scripts/generate_pack.py index 7d35a95c..dbfb0556 100644 --- a/scripts/generate_pack.py +++ b/scripts/generate_pack.py @@ -402,6 +402,10 @@ def _collect_emulator_extras( continue if file_mode == "libretro" and is_standalone: continue + # Skip files loaded from non-system directories (save_dir, content_dir) + load_from = f.get("load_from", "") + if load_from and load_from != "system_dir": + continue if is_standalone: dest = f.get("standalone_path") or f.get("path") or fname else: diff --git a/scripts/verify.py b/scripts/verify.py index 4860e3ac..43f48ca8 100644 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -327,6 +327,10 @@ def find_undeclared_files( continue if file_mode == "libretro" and is_standalone: continue + # Skip files loaded from non-system directories (save_dir, content_dir) + load_from = f.get("load_from", "") + if load_from and load_from != "system_dir": + continue archive = f.get("archive")