Use open-source shared fonts if no dumped file is available (#1269)

* Add open-source shared fonts

* Address review comments
This commit is contained in:
Tobias 2018-09-11 03:31:01 +02:00 committed by bunnei
parent 804115b2a4
commit 3bac3051fc
11 changed files with 111695 additions and 2 deletions

View File

@ -43,6 +43,9 @@ target_include_directories(mbedtls PUBLIC ./mbedtls/include)
add_library(microprofile INTERFACE)
target_include_directories(microprofile INTERFACE ./microprofile)
# Open Source Archives
add_subdirectory(open_source_archives EXCLUDE_FROM_ALL)
# Unicorn
add_library(unicorn-headers INTERFACE)
target_include_directories(unicorn-headers INTERFACE ./unicorn/include)

View File

@ -0,0 +1,3 @@
add_library(open_source_archives INTERFACE)
target_include_directories(open_source_archives INTERFACE "include/")

View File

@ -0,0 +1,4 @@
These files were generated by https://github.com/FearlessTobi/yuzu_system_archives at git commit 0a24b0c9f38d71fb2c4bba5645a39029e539a5ec. To generate the files use the run.sh inside that repository.
The follwing system archives are currently included:
- JPN/EUR/USA System Font

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -388,7 +388,7 @@ add_library(core STATIC
create_target_directory_groups(core)
target_link_libraries(core PUBLIC common PRIVATE audio_core video_core)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static mbedtls opus unicorn)
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static mbedtls opus unicorn open_source_archives)
if (ARCHITECTURE_x86_64)
target_sources(core PRIVATE

View File

@ -2,6 +2,13 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include <FontChineseSimplified.ttf.h>
#include <FontChineseTraditional.ttf.h>
#include <FontExtendedChineseSimplified.ttf.h>
#include <FontKorean.ttf.h>
#include <FontNintendoExtended.ttf.h>
#include <FontStandard.ttf.h>
#include "common/common_paths.h"
#include "common/file_util.h"
#include "core/core.h"
@ -218,7 +225,24 @@ PL_U::PL_U() : ServiceFramework("pl:u") {
file.ReadBytes(shared_font->data(), shared_font->size());
BuildSharedFontsRawRegions(*shared_font);
} else {
LOG_WARNING(Service_NS, "Unable to load shared font: {}", filepath);
LOG_WARNING(Service_NS,
"Shared Font file missing. Loading open source replacement from memory");
const std::vector<std::vector<u8>> open_source_shared_fonts_ttf = {
{std::begin(FontChineseSimplified), std::end(FontChineseSimplified)},
{std::begin(FontChineseTraditional), std::end(FontChineseTraditional)},
{std::begin(FontExtendedChineseSimplified),
std::end(FontExtendedChineseSimplified)},
{std::begin(FontNintendoExtended), std::end(FontNintendoExtended)},
{std::begin(FontStandard), std::end(FontStandard)},
};
for (const std::vector<u8>& font_ttf : open_source_shared_fonts_ttf) {
const FontRegion region{static_cast<u32>(offset + 8),
static_cast<u32>(font_ttf.size())};
EncryptSharedFont(font_ttf, *shared_font, offset);
SHARED_FONT_REGIONS.push_back(region);
}
}
}
}