Stop listing the app's own folders as games

We ship resources/patches.zip; .zip counts as bootable and, on an install with no
custom data root, the folder we copy assets into is also a scan root — so every
library showed a phantom game called "patches", even with an empty game folder.
Block the app-managed directories by name, as bios/covers/cache already were.
This commit is contained in:
moonpower
2026-08-05 22:34:35 +02:00
parent 31713132ef
commit b6cdcd06d7
2 changed files with 16 additions and 1 deletions
+5
View File
@@ -18,6 +18,11 @@ Crashes
to the library, and a crash in the same window when the previous game was still
shutting down.
Library
* A game called "patches" no longer appears out of nowhere. ARMSX1 ships a patch
archive with its own files, and the library was listing it as a game — so even an
empty game folder showed one entry. The app's own folders are skipped now.
In-game
* Restart in the pause menu closes the menu again, so the reboot is visible instead of
looking like nothing happened.
@@ -99,7 +99,17 @@ object Ps1Library {
return file.length() >= MIN_DISC_BYTES
}
private val BLOCKED_DIRS = setOf("bios", "memcards", "savestates", "sstates", "covers", "cache")
/* The app's own folders, never a place a game lives.
`resources` earned its place the hard way: we SHIP `resources/patches.zip`, .zip counts as
bootable, and on an install with no custom data root the folder we copy assets into IS a
scan root — so the library listed our own patch archive as a game called "patches", even
when the user's chosen folder was empty. The rest are listed for the same reason: every
one of them is a directory this app creates and fills (see BackupManager.INCLUDED). */
private val BLOCKED_DIRS = setOf(
"bios", "memcards", "savestates", "sstates", "covers", "cache", "resources",
"patches", "cheats", "snaps", "inputprofiles", "gamesettings", "logs",
"shaders", "textures", "skins", "saf-launch",
)
private data class SafCandidate(
val game: Ps1Game,