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.
This commit is contained in:
Abdessamad Derraz
2026-03-29 13:07:30 +02:00
parent 2dd2b724c1
commit 97eb4835be
3 changed files with 10 additions and 2 deletions

View File

@@ -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"

View File

@@ -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:

View File

@@ -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")