Add files via upload

Fix an issue where icon0 and game title id cannot be found after the game is deleted.
This commit is contained in:
chinseng85 2020-03-21 21:29:42 +08:00 committed by GitHub
parent 1dc0d6008b
commit de8e673935
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -51,7 +51,7 @@ end
-- Recover title from homebrew database -- Recover title from homebrew database
function recoverTitle(tid) function recoverTitle(tid)
local file = System.openFile("ux0:/data/TrackPlugArchive/" .. tid .. ".txt", FREAD) local file = System.openFile("ux0:/data/TrackPlugArchive/" .. tid .. "/title.txt", FREAD)
fsize = System.sizeFile(file) fsize = System.sizeFile(file)
local title = System.readFile(file, fsize) local title = System.readFile(file, fsize)
System.closeFile(file) System.closeFile(file)
@ -61,15 +61,23 @@ end
-- Extracts title name from an SFO file -- Extracts title name from an SFO file
function extractTitle(file, tid) function extractTitle(file, tid)
local data = System.extractSfo(file) local data = System.extractSfo(file)
if System.doesFileExist("ux0:/data/TrackPlugArchive/" .. tid .. ".txt") then if System.doesFileExist("ux0:/data/TrackPlugArchive/" .. tid .. "/title.txt") then
System.deleteFile("ux0:/data/TrackPlugArchive/" .. tid .. ".txt") System.deleteFile("ux0:/data/TrackPlugArchive/" .. tid .. "/title.txt")
end end
local file = System.openFile("ux0:/data/TrackPlugArchive/" .. tid .. ".txt", FCREATE) local file = System.openFile("ux0:/data/TrackPlugArchive/" .. tid .. "/title.txt", FCREATE)
System.writeFile(file, data.title, string.len(data.title)) System.writeFile(file, data.title, string.len(data.title))
System.closeFile(file) System.closeFile(file)
return data.title return data.title
end end
function copyIcon(titleid)
newFile = System.openFile("ux0:/data/TrackPlugArchive/" .. titleid .. "/icon0.png", FCREATE)
oldFile = System.openFile("ur0:/appmeta/" .. titleid .. "/icon0.png", FREAD)
fileSize = System.sizeFile(oldFile)
icon = System.readFile(oldFile, fileSize)
System.writeFile(newFile, icon, fileSize)
end
function getRegion(titleid) function getRegion(titleid)
local regioncode = string.sub(titleid,1,4) local regioncode = string.sub(titleid,1,4)
local prefix = string.sub(regioncode,1,2) local prefix = string.sub(regioncode,1,2)
@ -145,12 +153,18 @@ for i, file in pairs(tbl) do
local titleid = string.sub(file.name,1,-5) local titleid = string.sub(file.name,1,-5)
file.region = getRegion(titleid) file.region = getRegion(titleid)
if System.doesFileExist("ur0:/appmeta/" .. titleid .. "/icon0.png") then if System.doesFileExist("ux0:/data/TrackPlugArchive/" .. titleid .. "/icon0.png") then
file.icon = Graphics.loadImage("ux0:/data/TrackPlugArchive/" .. titleid .. "/icon0.png")
elseif System.doesFileExist("ur0:/appmeta/" .. titleid .. "/icon0.png") then
file.icon = Graphics.loadImage("ur0:/appmeta/" .. titleid .. "/icon0.png") file.icon = Graphics.loadImage("ur0:/appmeta/" .. titleid .. "/icon0.png")
System.createDirectory("ux0:/data/TrackPlugArchive/" .. titleid .. "")
copyIcon(titleid)
else else
file.icon = unk file.icon = unk
end end
if System.doesFileExist("ux0:/data/TrackPlugArchive/" .. titleid .. ".txt") then
if System.doesFileExist("ux0:/data/TrackPlugArchive/" .. titleid .. "/title.txt") then
file.title = recoverTitle(titleid) file.title = recoverTitle(titleid)
elseif System.doesFileExist("ux0:/app/" .. titleid .. "/sce_sys/param.sfo") then elseif System.doesFileExist("ux0:/app/" .. titleid .. "/sce_sys/param.sfo") then
file.title = extractTitle("ux0:/app/" .. titleid .. "/sce_sys/param.sfo", titleid) file.title = extractTitle("ux0:/app/" .. titleid .. "/sce_sys/param.sfo", titleid)