# Rebuild emulators.db from readable BSON docs (fixes LiteDB page corruption). $ErrorActionPreference = 'Stop' Get-Process -Name 'Playnite*' -ErrorAction SilentlyContinue | Stop-Process -Force Start-Sleep -Seconds 2 $lib = Join-Path $env:LOCALAPPDATA 'Playnite\library' $src = Join-Path $lib 'emulators.db' $new = Join-Path $lib 'emulators.db.new' $bak = Join-Path $lib 'emulators.db.broken' Add-Type -Path (Join-Path $env:LOCALAPPDATA 'Playnite\LiteDB.dll') if (Test-Path $new) { Remove-Item -Force $new } $srcDb = [LiteDB.LiteDatabase]::new("Filename=$src") $dstDb = [LiteDB.LiteDatabase]::new("Filename=$new") $srcCol = $srcDb.GetCollection('Emulator') $dstCol = $dstDb.GetCollection('Emulator') $n = 0 foreach ($doc in $srcCol.FindAll()) { $dstCol.Insert($doc) | Out-Null $n++ } $srcDb.Dispose() $dstDb.Dispose() Move-Item -Force $src $bak Move-Item -Force $new $src Write-Host "Rebuilt emulators.db from $n documents." Write-Host "Old file: $bak"