From 390ecb318411c02bdd01f33f3a405d2fc0cd6dff Mon Sep 17 00:00:00 2001 From: sum2012 Date: Fri, 5 Aug 2016 19:58:31 +0800 Subject: [PATCH] Better support zh_gb.pgf --- Core/HLE/sceFont.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Core/HLE/sceFont.cpp b/Core/HLE/sceFont.cpp index 9f93cc4739..d6dd5e2059 100644 --- a/Core/HLE/sceFont.cpp +++ b/Core/HLE/sceFont.cpp @@ -645,9 +645,26 @@ static void __LoadInternalFonts() { if (!pspFileSystem.GetFileInfo(fontPath).exists) { pspFileSystem.MkDir(fontPath); } + if (pspFileSystem.GetFileInfo("disc0:/PSP_GAME/USRDIR/zh_gb.pgf").exists) { + for (size_t i = 0; i < ARRAY_SIZE(fontRegistry); i++) { + const FontRegistryEntry &entry = fontRegistry[i]; + std::string fontFilename = userfontPath + entry.fileName; + PSPFileInfo info = pspFileSystem.GetFileInfo(fontFilename); + DEBUG_LOG(SCEFONT, "Loading internal font %s (%i bytes)", fontFilename.c_str(), (int)info.size); + std::vector buffer; + if (pspFileSystem.ReadEntireFile(fontFilename, buffer) < 0) { + ERROR_LOG(SCEFONT, "Failed opening font"); + continue; + } + internalFonts.push_back(new Font(buffer, entry)); + DEBUG_LOG(SCEFONT, "Loaded font %s", fontFilename.c_str()); + return; + } + } + for (size_t i = 0; i < ARRAY_SIZE(fontRegistry); i++) { const FontRegistryEntry &entry = fontRegistry[i]; - std::string fontFilename = userfontPath + entry.fileName; + std::string fontFilename = userfontPath + entry.fileName; PSPFileInfo info = pspFileSystem.GetFileInfo(fontFilename); if (!info.exists) {