@quah
I don't have a device with UNC paths, so please can you try replacing all of the two following lines.
Replace line 15 [buildPath...] with:
buildPth : pth => {console.log("buildPth input pth", pth); let result, tmpFileLoc = "", UNC = pth.startsWith("\\\\"); if (UNC) pth = pth.replace("\\\\", ""); console.log("UNC",UNC); const pattern = /(.*?)\\/gm; while ((result = pattern.exec(pth))) {tmpFileLoc = tmpFileLoc.concat(result[0]); if (UNC) {tmpFileLoc = `\\\\${tmpFileLoc}`; UNC = false;} console.log("buildPth output tmpFileLoc",tmpFileLoc); s.create(tmpFileLoc);}},
Replace line 519 [if (!pth) return...] with
if (!pth) return ""; console.log("cleanPth input", pth); let UNC = pth.startsWith("\\\\"); if (UNC) pth = pth.replace("\\\\", ""); if (!pth.endsWith("\\")) pth += "\\"; const c_pos = pth.indexOf(":"); pth = pth.replace(/[/|:]/g, "-").replace(/\*/g, "x").replace(/"/g, "''").replace(/[<>]/g, "_").replace(/\?/g, "").replace(/\\\./g, "\\_").replace(/\.+\\/, "\\").replace(/\s*\\\s*/g, "\\"); if (c_pos < 3 && c_pos != -1) pth = s.replaceAt(pth, c_pos, ":"); while (pth.includes("\\\\")) pth = pth.replace(/\\\\/g,"\\_\\"); if (UNC) pth = `\\\\${pth}`; console.log("cleanPth output", pth); return pth.trim();
Hopefully it will work. If not there are some console.log traces in there which might help, and that can be removed if all is OK.
Regarding embedded album art. That should display fine. It's working here. It may depend on embedded vs external setting: foobar2000 preferences > advanced > display > album art > embedded vs external