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) {