1
0
mirror of https://git.suyu.dev/suyu/suyu synced 2025-12-08 13:52:08 -06:00

13 Commits

Author SHA1 Message Date
ddutchie
73c2c78990 Merge branch 'dev' into ddutchie/citest 2024-03-19 08:16:42 -04:00
Alessio
460b6be75f Radeon gpu profiler detection support 2024-03-18 23:23:57 +00:00
Exverge
93dc7fb6b2 fix: Fixes compiling to non-Apple OSes on arm64 2024-03-18 23:11:32 +00:00
Levi Akatsuki
e0ff7d0a6e Fixed broken code in dev branch 2024-03-18 22:13:59 +00:00
ddutchie
47ae788afd Merge branch 'dev' into ddutchie/citest 2024-03-18 16:43:35 -04:00
ddutchie
2f2fbed1db Revert "WTF"
This reverts commit 4009a72299.
2024-03-18 16:43:27 -04:00
Paulo Alfaiate
fb326514bf Update 2024-03-18 20:43:04 +00:00
ddutchie
4009a72299 WTF 2024-03-18 16:41:34 -04:00
ddutchie
07f19b0bbc cleanup 2024-03-18 16:21:28 -04:00
ddutchie
cb9e613a7c Update docker.sh 2024-03-18 16:08:41 -04:00
ddutchie
c5045ff036 Update .gitignore 2024-03-18 15:42:45 -04:00
ddutchie
abda93ce0f Merge branch 'dev' into ddutchie/citest 2024-03-18 15:30:51 -04:00
ddutchie
148fd75d6c Remove Caching 2024-03-18 15:28:09 -04:00
10 changed files with 21 additions and 63 deletions

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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();

View File

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

View File

@@ -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";
}
}

View File

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