Add configurable default fakelib mode and localize its controls

This commit is contained in:
Roman Tarasov committed 2026-10-10 18:10:35 +03:00
1 parent 0b954376c6
commit e79d2d128d
38 files changed
+259 -70

No files matched your search

+2
View File
@@ -12,6 +12,8 @@ static const char *const g_ar_sa[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: تم تمكين عمق المسح %u.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "فشل تطبيق طبقة الدعم الرجعي: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "تم تطبيق المحاكيات على اللعبة: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "طُبّق الدعم الرجعي على اللعبة: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_cs_cz[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: povolena hloubka prohledávání %u.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport overlay selhal: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulátory použity pro hru: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport hry použit: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_da_dk[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: scanningsdybde %u aktiveret.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport-overlay mislykkedes: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulatorer anvendt på spil: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Spil backportet: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_de_de[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: Scan-Tiefe %u ist aktiviert.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport-Overlay fehlgeschlagen: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulatoren auf Spiel angewendet: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Spiel backportiert: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_el_gr[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: ενεργό βάθος σάρωσης %u.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Αποτυχία backport overlay: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Εφαρμόστηκαν εξομοιωτές στο παιχνίδι: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Εφαρμόστηκε backport στο παιχνίδι: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_en_gb[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: scan depth %u enabled.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport overlay failed: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulators applied to game: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport applied to game: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_es_es[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: profundidad de escaneo %u activada.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Error en overlay de backport: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emuladores aplicados al juego: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Juego con backport aplicado: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_es_mx[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: profundidad de escaneo %u activada.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Falló el overlay de backport: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emuladores aplicados al juego: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport aplicado al juego: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_fi_fi[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: skannaussyvyys %u käytössä.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport-overlay epäonnistui: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulaattorit otettu käyttöön pelissä: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Peliin käytettiin backportia: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_fr_ca[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+ : profondeur d’analyse %u activée.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Échec du montage de la surcouche de backport : %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Émulateurs appliqués au jeu : %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport appliqué au jeu : %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_fr_fr[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+ : profondeur d’analyse %u activée.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Échec du montage de la surcouche de backport : %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Émulateurs appliqués au jeu : %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport appliqué au jeu : %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_hu_hu[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: %u keresési mélység engedélyezve.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport overlay sikertelen: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulátorok alkalmazva a játékhoz: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Játék backportolva: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_id_id[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: kedalaman pemindaian %u aktif.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport overlay gagal: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulator diterapkan pada game: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport game diterapkan: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_it_it[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: profondità di scansione %u abilitata.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Overlay backport non riuscito: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulatori applicati al gioco: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport applicato al gioco: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_ja_jp[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: スキャン深度 %u が有効です。",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "バックポートオーバーレイのマウントに失敗しました: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "ゲーム %s にエミュレーターを適用しました",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "ゲームにバックポートを適用しました: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_ko_kr[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: 스캔 깊이 %u 활성화됨.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "백포트 오버레이 마운트 실패: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "게임 %s에 에뮬레이터가 적용되었습니다",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "게임에 백포트 적용됨: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_nl_nl[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: scandiepte %u ingeschakeld.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport-overlay mislukt: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulators toegepast op spel: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport op game toegepast: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_no_no[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: skannedybde %u aktivert.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport-overlay mislyktes: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulatorer brukt på spillet: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport brukt på spillet: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_pl_pl[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: włączono głębokość skanowania %u.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Nakładka backportu nie powiodła się: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Zastosowano emulatory w grze: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Zastosowano backport gry: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_pt_br[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: profundidade de varredura %u ativada.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Falha no overlay de backport: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emuladores aplicados ao jogo: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport aplicado ao jogo: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_pt_pt[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: profundidade de pesquisa %u ativada.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Falha no overlay de backport: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emuladores aplicados ao jogo: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Jogo com backport aplicado: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_ro_ro[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: adâncimea de scanare %u este activată.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Overlay backport eșuat: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulatoare aplicate jocului: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport aplicat jocului: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_sv_se[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: skanningsdjup %u aktiverat.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport-overlay misslyckades: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Emulatorer tillämpade på spelet: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Backport tillämpad på spelet: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_th_th[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: เปิดใช้ความลึกการสแกน %u",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "backport overlay ล้มเหลว: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "ใช้โปรแกรมจำลองกับเกม %s แล้ว",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "ใช้ backport กับเกมแล้ว: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_tr_tr[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: tarama derinliği %u etkin.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport overlay başarısız: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Oyuna emülatörler uygulandı: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Oyuna backport uygulandı: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_uk_ua[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: увімкнено глибину сканування %u.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Не вдалося змонтувати оверлей бекпорту: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "До гри %s застосовано емулятори",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "До гри %s застосовано бекпорт",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_vi_vn[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: đã bật độ sâu quét %u.",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "Backport overlay thất bại: %s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "Đã áp dụng trình giả lập cho trò chơi: %s",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "Đã áp dụng backport cho game: %s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_zh_cn[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: 已启用扫描深度 %u。",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "向下兼容覆盖层挂载失败:%s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "已为游戏 %s 应用模拟器",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "已为游戏应用向下兼容补丁:%s",
/* English: Backport applied to game: %s\nEmulators updated */
+2
View File
@@ -12,6 +12,8 @@ static const char *const g_zh_tw[SM_L10N_COUNT] = {
[SM_L10N_SCAN_DEPTH_ENABLED] = "ShadowMount+: 已啟用掃描深度 %u。",
/* English: Backport overlay failed: %s\n%s\n0x%08X */
[SM_L10N_BACKPORT_OVERLAY_FAILED] = "向下相容覆蓋層掛載失敗:%s\n%s\n0x%08X",
/* English: Emulators applied to game: %s */
[SM_L10N_GAME_EMULATORS_APPLIED] = "已為遊戲 %s 套用模擬器",
/* English: Backport applied to game: %s */
[SM_L10N_GAME_BACKPORTED] = "已為遊戲套用向下相容修補程式:%s",
/* English: Backport applied to game: %s\nEmulators updated */
+5 -2
View File
@@ -23,7 +23,8 @@ bool sm_config_write_web_settings(bool debug_enabled, bool quiet_mode,
bool allow_lan_access,
uint32_t fan_target_temperature_c,
const char *const *scan_paths,
size_t scan_path_count);
size_t scan_path_count,
sm_fakelib_mode_t fakelib_default_mode);
// Return a coherent caller-owned copy of the current runtime configuration.
runtime_config_t runtime_config(void);
// Return the number of configured scan roots.
@@ -52,7 +53,9 @@ bool upsert_image_sector_size_autotune(const char *filename,
bool is_global_fakelib_excluded_for_title(const char *title_id);
// Return true when all fakelib overlays are disabled for this title.
bool is_fakelib_excluded_for_title(const char *title_id);
// Resolve a mode from a snapshot or the live config; absent rules mean full.
// Resolve a mode from a snapshot or live config; absent rules use the default.
sm_fakelib_mode_t sm_config_title_fakelib_override(const runtime_config_t *cfg,
const char *title_id);
sm_fakelib_mode_t sm_config_title_fakelib_mode(const runtime_config_t *cfg,
const char *title_id);
sm_fakelib_mode_t get_fakelib_mode_for_title(const char *title_id);
+2
View File
@@ -131,6 +131,7 @@ typedef enum {
SM_FAKELIB_FULL = 0,
SM_FAKELIB_EMULATORS,
SM_FAKELIB_DISABLED,
SM_FAKELIB_DEFAULT, // Per-title inheritance; never a global default.
} sm_fakelib_mode_t;
typedef struct {
@@ -159,6 +160,7 @@ typedef struct runtime_config {
char global_fakelib_path[MAX_PATH];
char emulators_path[MAX_PATH];
char ampr_update_url[MAX_PATH];
sm_fakelib_mode_t fakelib_default_mode;
uint32_t fakelib_rule_count;
sm_fakelib_rule_t fakelib_rules[MAX_FAKELIB_EXCLUDE_RULES];
uint32_t global_fakelib_exclude_title_count;