Browse Source

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

* Add open-source shared fonts

* Address review comments
nce_cpp
Tobias 7 years ago
committed by bunnei
parent
commit
9dd19c9a99
  1. 3
      externals/CMakeLists.txt
  2. 3
      externals/open_source_archives/CMakeLists.txt
  3. 4
      externals/open_source_archives/Readme.md
  4. 18111
      externals/open_source_archives/include/FontChineseSimplified.ttf.h
  5. 18523
      externals/open_source_archives/include/FontChineseTraditional.ttf.h
  6. 24463
      externals/open_source_archives/include/FontExtendedChineseSimplified.ttf.h
  7. 18110
      externals/open_source_archives/include/FontKorean.ttf.h
  8. 14342
      externals/open_source_archives/include/FontNintendoExtended.ttf.h
  9. 18110
      externals/open_source_archives/include/FontStandard.ttf.h
  10. 2
      src/core/CMakeLists.txt
  11. 26
      src/core/hle/service/ns/pl_u.cpp

3
externals/CMakeLists.txt

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

3
externals/open_source_archives/CMakeLists.txt

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

4
externals/open_source_archives/Readme.md

@ -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

18111
externals/open_source_archives/include/FontChineseSimplified.ttf.h
File diff suppressed because it is too large
View File

18523
externals/open_source_archives/include/FontChineseTraditional.ttf.h
File diff suppressed because it is too large
View File

24463
externals/open_source_archives/include/FontExtendedChineseSimplified.ttf.h
File diff suppressed because it is too large
View File

18110
externals/open_source_archives/include/FontKorean.ttf.h
File diff suppressed because it is too large
View File

14342
externals/open_source_archives/include/FontNintendoExtended.ttf.h
File diff suppressed because it is too large
View File

18110
externals/open_source_archives/include/FontStandard.ttf.h
File diff suppressed because it is too large
View File

2
src/core/CMakeLists.txt

@ -388,7 +388,7 @@ add_library(core STATIC
create_target_directory_groups(core) create_target_directory_groups(core)
target_link_libraries(core PUBLIC common PRIVATE audio_core video_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) if (ARCHITECTURE_x86_64)
target_sources(core PRIVATE target_sources(core PRIVATE

26
src/core/hle/service/ns/pl_u.cpp

@ -2,6 +2,13 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // 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/common_paths.h"
#include "common/file_util.h" #include "common/file_util.h"
#include "core/core.h" #include "core/core.h"
@ -218,7 +225,24 @@ PL_U::PL_U() : ServiceFramework("pl:u") {
file.ReadBytes(shared_font->data(), shared_font->size()); file.ReadBytes(shared_font->data(), shared_font->size());
BuildSharedFontsRawRegions(*shared_font); BuildSharedFontsRawRegions(*shared_font);
} else { } 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);
}
} }
} }
} }

Loading…
Cancel
Save