Fix a RetroArch playlist after moving game files on Android
First prove that the moved authorized file opens directly with the intended core. Then back up the playlist and either rescan the new folder or edit only each JSON item's `path` using Android-style forward slashes. Preserve `label`, `core_path`, `core_name`, `crc32`, and `db_name` unless a separate test shows that field is wrong.
Do this in order
- 01
Record the RetroArch package and version, core name and version, playlist file, old content path, and the new Android-accessible folder.
- 02
Load the moved authorized file directly with Load Content and the intended core; if that fails, repair access or compatibility before touching the playlist.
- 03
Exit RetroArch through its menu and copy the `.lpl` file to a reversible backup location.
- 04
Choose one repair: rescan the new folder for database-managed entries, use Manual Scan for explicit entries, or edit only the JSON `path` values for a small known set.
- 05
Use forward slashes on Android, keep valid JSON escaping, and leave label, core, CRC, and database fields unchanged unless independently disproved.
- 06
Restart RetroArch and test one entry, its thumbnail identity, and its assigned core before applying the same change to the remaining list.
Decision and diagnostic table
| Observation | Likely layer | Safest next action |
|---|---|---|
| Direct load works; playlist fails | Stale playlist path | Repair or recreate the entry |
| Direct load cannot browse new folder | Android access grant | Restore folder access first |
| Entry opens with wrong core | Core association | Test direct load, then reset association |
| Thumbnail disappears after path repair | Label/database identity | Preserve label and `db_name`; diagnose separately |
A playlist entry is more than a filename
The JSON item can carry a content path, display label, core association, checksum or serial, and database name. Moving the file normally invalidates only the path. Rebuilding every field can create a second problem while hiding the original one.
Direct loading is the control experiment
If the new location cannot be browsed or the core cannot launch the file directly, editing `.lpl` text cannot solve the lower layer. Direct loading separates an Android grant or core problem from a stale index entry.
Rescan and surgical edit have different costs
A rescan is safer for a large database-matched library but may change ordering or custom entries. A backed-up path-only edit preserves those choices but requires valid JSON and exact Android paths. Use the smallest reversible action that matches the list you actually have.
A playlist is an index, not permission to possess or share its content. Move and index only your own dumps or explicitly authorized files, and never attach ROM, BIOS, CHD, keys, artwork, or music to a repair report.