Compare commits

..

10 commits

Author SHA1 Message Date
94932270a5 add libusb to openbsd deps
All checks were successful
eden-license / license-header (pull_request) Successful in 41s
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-09-18 02:36:30 +02:00
e99b7bd60a [docs] clion, openbsd deps, readme
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-09-18 02:36:30 +02:00
0625b2b529 fix
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-09-18 02:36:30 +02:00
eddfa300a4 Oops
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-09-18 02:36:30 +02:00
b40676f5e3 [docs] refactor: full rewrite, generalization + dedup
Combines most of the stuff that was repeated thrice over verbatim into a
single common Build Instructions page, with additional caveats marked
elsewhere. Prettifies some stuff too because why not.

Signed-off-by: crueter <crueter@eden-emu.dev>
2025-09-18 02:36:30 +02:00
a1ed6a8636 [docs] Refactor building with Linux
* this a initial PR to improve documentation of building under linux
  based on updated windows doc

Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
2025-09-18 02:36:30 +02:00
b8c92f64f8 docs: Update dependencies on Ubuntu
Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
2025-09-18 02:36:30 +02:00
249e006667
[VMA] Use Host cached and Host coherent for Download operations (#482)
Increase read speeds by using appropriate usage flags

Reviewed-on: #482
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Co-authored-by: wildcard <wildcard@eden-emu.dev>
Co-committed-by: wildcard <wildcard@eden-emu.dev>
2025-09-17 21:40:09 +02:00
8ac495acee
[fs] Remove remaining files from NCA bypass and fix some asserts (#2502)
Reviewed-on: #2502
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
2025-09-17 17:45:52 +02:00
cda6958111
[host_memory] decrease latency of mapping on linux (#232)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: #232
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-09-17 02:31:44 +02:00
7 changed files with 16 additions and 46 deletions

View file

@ -598,12 +598,17 @@ public:
bool ClearBackingRegion(size_t physical_offset, size_t length) { bool ClearBackingRegion(size_t physical_offset, size_t length) {
#ifdef __linux__ #ifdef __linux__
// Set MADV_REMOVE on backing map to destroy it instantly. // Only incur syscall cost IF memset would be slower (theshold = 16MiB)
// This also deletes the area from the backing file. // TODO(lizzie): Smarter way to dynamically get this threshold (broadwell != raptor lake) for example
int ret = madvise(backing_base + physical_offset, length, MADV_REMOVE); if (length >= 2097152UL * 8) {
ASSERT_MSG(ret == 0, "madvise failed: {}", strerror(errno)); // Set MADV_REMOVE on backing map to destroy it instantly.
// This also deletes the area from the backing file.
return true; int ret = madvise(backing_base + physical_offset, length, MADV_REMOVE);
ASSERT_MSG(ret == 0, "madvise failed: {}", strerror(errno));
return true;
} else {
return false;
}
#else #else
return false; return false;
#endif #endif

View file

@ -107,7 +107,6 @@ add_library(core STATIC
file_sys/fssystem/fssystem_nca_header.cpp file_sys/fssystem/fssystem_nca_header.cpp
file_sys/fssystem/fssystem_nca_header.h file_sys/fssystem/fssystem_nca_header.h
file_sys/fssystem/fssystem_nca_reader.cpp file_sys/fssystem/fssystem_nca_reader.cpp
file_sys/fssystem/fssystem_passthrough_storage.h
file_sys/fssystem/fssystem_pooled_buffer.cpp file_sys/fssystem/fssystem_pooled_buffer.cpp
file_sys/fssystem/fssystem_pooled_buffer.h file_sys/fssystem/fssystem_pooled_buffer.h
file_sys/fssystem/fssystem_sparse_storage.cpp file_sys/fssystem/fssystem_sparse_storage.cpp

View file

@ -4,7 +4,6 @@
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "common/settings.h"
#include "core/file_sys/errors.h" #include "core/file_sys/errors.h"
#include "core/file_sys/fssystem/fssystem_bucket_tree.h" #include "core/file_sys/fssystem/fssystem_bucket_tree.h"
#include "core/file_sys/fssystem/fssystem_bucket_tree_utils.h" #include "core/file_sys/fssystem/fssystem_bucket_tree_utils.h"

View file

@ -4,7 +4,6 @@
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include "common/settings.h"
#include "core/file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.h" #include "core/file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.h"
#include "core/file_sys/fssystem/fssystem_aes_ctr_storage.h" #include "core/file_sys/fssystem/fssystem_aes_ctr_storage.h"
#include "core/file_sys/fssystem/fssystem_aes_xts_storage.h" #include "core/file_sys/fssystem/fssystem_aes_xts_storage.h"
@ -14,7 +13,6 @@
#include "core/file_sys/fssystem/fssystem_hierarchical_sha256_storage.h" #include "core/file_sys/fssystem/fssystem_hierarchical_sha256_storage.h"
#include "core/file_sys/fssystem/fssystem_indirect_storage.h" #include "core/file_sys/fssystem/fssystem_indirect_storage.h"
#include "core/file_sys/fssystem/fssystem_integrity_romfs_storage.h" #include "core/file_sys/fssystem/fssystem_integrity_romfs_storage.h"
#include "core/file_sys/fssystem/fssystem_passthrough_storage.h"
#include "core/file_sys/fssystem/fssystem_memory_resource_buffer_hold_storage.h" #include "core/file_sys/fssystem/fssystem_memory_resource_buffer_hold_storage.h"
#include "core/file_sys/fssystem/fssystem_nca_file_system_driver.h" #include "core/file_sys/fssystem/fssystem_nca_file_system_driver.h"
#include "core/file_sys/fssystem/fssystem_sparse_storage.h" #include "core/file_sys/fssystem/fssystem_sparse_storage.h"

View file

@ -13,13 +13,11 @@ u8 NcaHeader::GetProperKeyGeneration() const {
} }
bool NcaPatchInfo::HasIndirectTable() const { bool NcaPatchInfo::HasIndirectTable() const {
static constexpr unsigned char BKTR[4] = {'B', 'K', 'T', 'R'}; return this->indirect_size != 0;
return std::memcmp(indirect_header.data(), BKTR, sizeof(BKTR)) == 0;
} }
bool NcaPatchInfo::HasAesCtrExTable() const { bool NcaPatchInfo::HasAesCtrExTable() const {
static constexpr unsigned char BKTR[4] = {'B', 'K', 'T', 'R'}; return this->aes_ctr_ex_size != 0;
return std::memcmp(aes_ctr_ex_header.data(), BKTR, sizeof(BKTR)) == 0;
} }
} // namespace FileSys } // namespace FileSys

View file

@ -1,32 +0,0 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include "core/file_sys/fssystem/fs_i_storage.h"
#include "core/file_sys/vfs/vfs.h"
namespace FileSys {
//TODO: No integrity verification.
class PassthroughStorage final : public IReadOnlyStorage {
YUZU_NON_COPYABLE(PassthroughStorage);
YUZU_NON_MOVEABLE(PassthroughStorage);
public:
explicit PassthroughStorage(VirtualFile base) : base_(std::move(base)) {}
~PassthroughStorage() override = default;
size_t Read(u8* buffer, size_t size, size_t offset) const override {
if (!base_ || size == 0)
return 0;
return base_->Read(buffer, size, offset);
}
size_t GetSize() const override {
return base_ ? base_->GetSize() : 0;
}
private:
VirtualFile base_{};
};
} // namespace FileSys

View file

@ -49,6 +49,9 @@ namespace Vulkan {
} }
[[nodiscard]] VkMemoryPropertyFlags MemoryUsagePreferredVmaFlags(MemoryUsage usage) { [[nodiscard]] VkMemoryPropertyFlags MemoryUsagePreferredVmaFlags(MemoryUsage usage) {
if (usage == MemoryUsage::Download) {
return VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
}
return usage != MemoryUsage::DeviceLocal ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT return usage != MemoryUsage::DeviceLocal ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
: VkMemoryPropertyFlagBits{}; : VkMemoryPropertyFlagBits{};
} }