mirror of
https://git.suyu.dev/suyu/suyu
synced 2025-12-08 13:52:08 -06:00
Compare commits
13 Commits
revert-e9e
...
ddutchie/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73c2c78990 | ||
|
|
460b6be75f | ||
|
|
93dc7fb6b2 | ||
|
|
e0ff7d0a6e | ||
|
|
47ae788afd | ||
|
|
2f2fbed1db | ||
|
|
fb326514bf | ||
|
|
4009a72299 | ||
|
|
07f19b0bbc | ||
|
|
cb9e613a7c | ||
|
|
c5045ff036 | ||
|
|
abda93ce0f | ||
|
|
148fd75d6c |
@@ -12,8 +12,6 @@ mkdir build || true && cd build
|
||||
cmake .. \
|
||||
-DBoost_USE_STATIC_LIBS=ON \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DSUYU_USE_PRECOMPILED_HEADERS=OFF \
|
||||
-DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF \
|
||||
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
|
||||
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
|
||||
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
|
||||
@@ -26,7 +24,6 @@ cmake .. \
|
||||
-DSUYU_USE_BUNDLED_FFMPEG=ON \
|
||||
-DSUYU_ENABLE_LTO=ON \
|
||||
-DSUYU_CRASH_DUMPS=ON \
|
||||
-DSUYU_USE_FASTER_LD=ON \
|
||||
-GNinja
|
||||
|
||||
ninja
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,7 +4,6 @@
|
||||
# Build directory
|
||||
[Bb]uild*/
|
||||
doc-build/
|
||||
cmake-build*/
|
||||
|
||||
# Generated source files
|
||||
src/common/scm_rev.cpp
|
||||
@@ -15,7 +14,6 @@ dist/english_plurals/generated_en.ts
|
||||
.idea/
|
||||
.vs/
|
||||
.vscode/
|
||||
.cache/
|
||||
CMakeLists.txt.user*
|
||||
|
||||
# *nix related
|
||||
|
||||
@@ -1,22 +1,6 @@
|
||||
stages:
|
||||
- format
|
||||
- build
|
||||
|
||||
variables:
|
||||
# https://docs.gitlab.com/ee/ci/runners/configure_runners.html
|
||||
TRANSFER_METER_FREQUENCY: "2s"
|
||||
ARTIFACT_COMPRESSION_LEVEL: "fast"
|
||||
CACHE_COMPRESSION_LEVEL: "fastest"
|
||||
CACHE_REQUEST_TIMEOUT: 5
|
||||
# Use FASTZIP for faster compression in cache and artifacts
|
||||
# https://docs.gitlab.com/runner/configuration/feature-flags.html#available-feature-flags
|
||||
FF_USE_FASTZIP: true
|
||||
|
||||
# Our Variables
|
||||
CACHE_DIR: "$CI_PROJECT_DIR/ccache"
|
||||
CCACHE_DIR: $CACHE_DIR
|
||||
|
||||
|
||||
#CLANG FORMAT - CHECKS CODE FOR FORMATTING ISSUES
|
||||
clang-format:
|
||||
stage: format
|
||||
@@ -38,14 +22,6 @@ build-linux:
|
||||
stage: build
|
||||
image: suyuemu/cibuild:linux-x64
|
||||
resource_group: linux-ci
|
||||
cache:
|
||||
key: "$CI_COMMIT_REF_NAME-ccache"
|
||||
paths:
|
||||
- $CACHE_DIR
|
||||
before_script:
|
||||
- mkdir -p $CACHE_DIR
|
||||
- chmod -R 777 $CACHE_DIR
|
||||
- ls -la $CACHE_DIR
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
GIT_SUBMODULE_DEPTH: 1
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include <dynarmic/frontend/A64/decoder/a64.h>
|
||||
#include <dynarmic/frontend/imm.h>
|
||||
|
||||
#include "common/common_types.h"
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
namespace Core {
|
||||
|
||||
@@ -648,14 +648,14 @@ void KeyManager::ReloadKeys() {
|
||||
|
||||
if (Settings::values.use_dev_keys) {
|
||||
dev_mode = true;
|
||||
LoadFromFile(suyu_keys_dir / "dev.keys", 1);
|
||||
LoadFromFile(suyu_keys_dir / "dev.keys", false);
|
||||
} else {
|
||||
dev_mode = false;
|
||||
LoadFromFile(suyu_keys_dir / "prod.keys", 2);
|
||||
LoadFromFile(suyu_keys_dir / "prod.keys", false);
|
||||
}
|
||||
|
||||
LoadFromFile(suyu_keys_dir / "title.keys", 3);
|
||||
LoadFromFile(suyu_keys_dir / "console.keys", 4);
|
||||
LoadFromFile(suyu_keys_dir / "title.keys", true);
|
||||
LoadFromFile(suyu_keys_dir / "console.keys", false);
|
||||
}
|
||||
|
||||
static bool ValidCryptoRevisionString(std::string_view base, size_t begin, size_t length) {
|
||||
@@ -666,26 +666,11 @@ static bool ValidCryptoRevisionString(std::string_view base, size_t begin, size_
|
||||
[](u8 c) { return std::isxdigit(c); });
|
||||
}
|
||||
|
||||
void KeyManager::LoadFromFile(const std::filesystem::path& file_path, int key_type) {
|
||||
void KeyManager::LoadFromFile(const std::filesystem::path& file_path, bool is_title_keys) {
|
||||
if (!Common::FS::Exists(file_path)) {
|
||||
switch (key_type) {
|
||||
case 1:
|
||||
LOG_ERROR(Crypto, "Issue with Development key file at '{}': File not found",
|
||||
file_path.generic_string());
|
||||
return;
|
||||
case 2:
|
||||
LOG_ERROR(Crypto, "Issue with Production key file at '{}': File not found",
|
||||
file_path.generic_string());
|
||||
return;
|
||||
case 3:
|
||||
LOG_INFO(Crypto, "Issue with Title key file at '{}': File not found",
|
||||
file_path.generic_string());
|
||||
case 4:
|
||||
LOG_INFO(Crypto, "Issue with Console key file at '{}': File not found",
|
||||
file_path.generic_string());
|
||||
default:
|
||||
LOG_ERROR(Crypto, "Unknown Key Type");
|
||||
}
|
||||
LOG_ERROR(Crypto, "Cannot handle key file '{}': File not found",
|
||||
file_path.generic_string());
|
||||
return;
|
||||
}
|
||||
|
||||
std::ifstream file;
|
||||
@@ -818,8 +803,7 @@ bool KeyManager::BaseDeriveNecessary() const {
|
||||
}
|
||||
|
||||
if (!Common::FS::Exists(suyu_keys_dir / "title.keys")) {
|
||||
LOG_ERROR(Crypto, "No title.keys found");
|
||||
return true;
|
||||
LOG_WARNING(Crypto, "Could not locate a title.keys file");
|
||||
}
|
||||
|
||||
if (check_key_existence(S256KeyType::Header)) {
|
||||
@@ -1322,4 +1306,4 @@ bool KeyManager::AddTicket(const Ticket& ticket) {
|
||||
SetKey(S128KeyType::Titlekey, key.value(), rights_id[1], rights_id[0]);
|
||||
return true;
|
||||
}
|
||||
} // namespace Core::Crypto
|
||||
} // namespace Core::Crypto
|
||||
|
||||
@@ -312,7 +312,7 @@ private:
|
||||
RSAKeyPair<2048> eticket_rsa_keypair{};
|
||||
|
||||
bool dev_mode;
|
||||
void LoadFromFile(const std::filesystem::path& file_path, int key_type);
|
||||
void LoadFromFile(const std::filesystem::path& file_path, bool is_title_keys);
|
||||
|
||||
void DeriveGeneralPurposeKeys(std::size_t crypto_revision);
|
||||
|
||||
|
||||
@@ -1756,8 +1756,7 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
|
||||
QMessageBox::warning(this, tr("Derivation Components Missing"),
|
||||
tr("Encryption keys are missing. "
|
||||
"In order to use this emulator"
|
||||
"you need to provide your own prod.keys"
|
||||
"Some games might also require your own title.keys as well"
|
||||
"you need to provide your own encryption keys"
|
||||
"in order to play them."));
|
||||
return false;
|
||||
}
|
||||
@@ -4631,9 +4630,9 @@ void GMainWindow::OnCheckFirmwareDecryption() {
|
||||
if (!ContentManager::AreKeysPresent()) {
|
||||
QMessageBox::warning(this, tr("Derivation Components Missing"),
|
||||
tr("Encryption keys are missing. "
|
||||
"You need to provide both your own title.keys "
|
||||
"and your own prod.keys "
|
||||
"in order to play games"));
|
||||
"In order to use this emulator"
|
||||
"you need to provide your own encryption keys"
|
||||
"in order to play them."));
|
||||
}
|
||||
|
||||
SetFirmwareVersion();
|
||||
|
||||
@@ -408,7 +408,7 @@ if (MSVC)
|
||||
/we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data
|
||||
)
|
||||
else()
|
||||
if (APPLE)
|
||||
if (APPLE OR ARCHITECTURE_arm64)
|
||||
# error: declaration shadows a typedef in 'interval_base_set<SubType, DomainT, Compare, Interval, Alloc>'
|
||||
# error: implicit conversion loses integer precision: 'int' to 'boost::icl::bound_type' (aka 'unsigned char')
|
||||
target_compile_options(video_core PRIVATE -Wno-shadow -Wno-unused-local-typedef)
|
||||
|
||||
@@ -1364,6 +1364,7 @@ void Device::CollectToolingInfo() {
|
||||
LOG_INFO(Render_Vulkan, "Attached debugging tool: {}", name);
|
||||
has_renderdoc = has_renderdoc || name == "RenderDoc";
|
||||
has_nsight_graphics = has_nsight_graphics || name == "NVIDIA Nsight Graphics";
|
||||
has_radeon_gpu_profiler = has_radeon_gpu_profiler || name == "Radeon GPU Profiler";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -592,7 +592,7 @@ public:
|
||||
|
||||
/// Returns true when a known debugging tool is attached.
|
||||
bool HasDebuggingToolAttached() const {
|
||||
return has_renderdoc || has_nsight_graphics;
|
||||
return has_renderdoc || has_nsight_graphics || has_radeon_gpu_profiler;
|
||||
}
|
||||
|
||||
/// @returns True if compute pipelines can cause crashing.
|
||||
@@ -821,6 +821,7 @@ private:
|
||||
bool has_broken_parallel_compiling{}; ///< Has broken parallel shader compiling.
|
||||
bool has_renderdoc{}; ///< Has RenderDoc attached
|
||||
bool has_nsight_graphics{}; ///< Has Nsight Graphics attached
|
||||
bool has_radeon_gpu_profiler{}; ///< Has Radeon GPU Profiler attached.
|
||||
bool supports_d24_depth{}; ///< Supports D24 depth buffers.
|
||||
bool cant_blit_msaa{}; ///< Does not support MSAA<->MSAA blitting.
|
||||
bool must_emulate_scaled_formats{}; ///< Requires scaled vertex format emulation
|
||||
|
||||
Reference in New Issue
Block a user