Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23709f36b7 |
1353 changed files with 32040 additions and 56314 deletions
|
|
@ -1,9 +1,9 @@
|
|||
name: tx-pull
|
||||
|
||||
on:
|
||||
# monday at 4pm
|
||||
# tuesday, saturday at 2pm
|
||||
schedule:
|
||||
- cron: '0 16 * * 1'
|
||||
- cron: '0 14 * * 2,6'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
|
|
|
|||
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
|
@ -3,7 +3,7 @@ description: File a bug report
|
|||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with Eden.
|
||||
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with yuzu.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
|
|
@ -43,7 +43,7 @@ body:
|
|||
id: log
|
||||
attributes:
|
||||
label: Log File
|
||||
description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/user/HowToAccessLogs.md).
|
||||
description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://yuzu-emu.org/help/reference/log-files).
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
|
|
|||
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
4
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
|
|
@ -4,7 +4,7 @@ labels: "request"
|
|||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make Eden better.
|
||||
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make yuzu better.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
|
|
@ -23,6 +23,6 @@ body:
|
|||
id: why-feature
|
||||
attributes:
|
||||
label: Why would this feature be useful?
|
||||
description: A brief description of why this feature would make Eden better.
|
||||
description: A brief description of why this feature would make yuzu better.
|
||||
validations:
|
||||
required: true
|
||||
|
|
|
|||
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
|
@ -1,4 +1,5 @@
|
|||
- [ ] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
|
||||
- [ ] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
|
||||
- [ ] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.
|
||||
|
||||
-------------------
|
||||
|
|
|
|||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -7,7 +7,6 @@
|
|||
# Build directory
|
||||
/[Bb]uild*/
|
||||
doc-build/
|
||||
out/
|
||||
AppDir/
|
||||
uruntime
|
||||
|
||||
|
|
@ -64,6 +63,3 @@ artifacts
|
|||
/install*
|
||||
vulkansdk*.exe
|
||||
*.tar.zst
|
||||
|
||||
# Build-time generated external sources
|
||||
externals/generated
|
||||
|
|
|
|||
13
.patch/boost/0001-clang-cl.patch
Normal file
13
.patch/boost/0001-clang-cl.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/libs/cobalt/include/boost/cobalt/concepts.hpp b/libs/cobalt/include/boost/cobalt/concepts.hpp
|
||||
index d49f2ec..a9bdb80 100644
|
||||
--- a/libs/cobalt/include/boost/cobalt/concepts.hpp
|
||||
+++ b/libs/cobalt/include/boost/cobalt/concepts.hpp
|
||||
@@ -62,7 +62,7 @@ struct enable_awaitables
|
||||
template <typename T>
|
||||
concept with_get_executor = requires (T& t)
|
||||
{
|
||||
- {t.get_executor()} -> asio::execution::executor;
|
||||
+ t.get_executor();
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
--- a/source/effect_lexer.cpp
|
||||
+++ b/source/effect_lexer.cpp
|
||||
@@ -1181,7 +1181,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
-#if 0
|
||||
+#if !defined(__cpp_lib_to_chars)
|
||||
exponent += decimal_location - mantissa_size;
|
||||
|
||||
const bool exponent_negative = exponent < 0;
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From b3622608433c183ba868a1dc8dd9cf285eb3b916 Mon Sep 17 00:00:00 2001
|
||||
From: Dario Petrillo <dario.pk1@gmail.com>
|
||||
Date: Thu, 27 Nov 2025 23:12:38 +0100
|
||||
Subject: [PATCH] avoid extra memset when clearing an empty table
|
||||
|
||||
---
|
||||
include/ankerl/unordered_dense.h | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/ankerl/unordered_dense.h b/include/ankerl/unordered_dense.h
|
||||
index 0835342..4938212 100644
|
||||
--- a/include/ankerl/unordered_dense.h
|
||||
+++ b/include/ankerl/unordered_dense.h
|
||||
@@ -1490,8 +1490,10 @@ class table : public std::conditional_t<is_map_v<T>, base_table_type_map<T>, bas
|
||||
// modifiers //////////////////////////////////////////////////////////////
|
||||
|
||||
void clear() {
|
||||
- m_values.clear();
|
||||
- clear_buckets();
|
||||
+ if (!empty()) {
|
||||
+ m_values.clear();
|
||||
+ clear_buckets();
|
||||
+ }
|
||||
}
|
||||
|
||||
auto insert(value_type const& value) -> std::pair<iterator, bool> {
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h
|
||||
index 8df0364..4856064 100644
|
||||
--- a/include/vk_mem_alloc.h
|
||||
+++ b/include/vk_mem_alloc.h
|
||||
@@ -3017,7 +3017,7 @@ remove them if not needed.
|
||||
|
||||
#if defined(__ANDROID_API__) && (__ANDROID_API__ < 16)
|
||||
#include <cstdlib>
|
||||
-static void* vma_aligned_alloc(size_t alignment, size_t size)
|
||||
+static inline void* vma_aligned_alloc(size_t alignment, size_t size)
|
||||
{
|
||||
// alignment must be >= sizeof(void*)
|
||||
if(alignment < sizeof(void*))
|
||||
@@ -3860,7 +3860,7 @@ Returned value is the found element, if present in the collection or place where
|
||||
new element with value (key) should be inserted.
|
||||
*/
|
||||
template <typename CmpLess, typename IterT, typename KeyT>
|
||||
-static IterT VmaBinaryFindFirstNotLess(IterT beg, IterT end, const KeyT& key, const CmpLess& cmp)
|
||||
+static inline IterT VmaBinaryFindFirstNotLess(IterT beg, IterT end, const KeyT& key, const CmpLess& cmp)
|
||||
{
|
||||
size_t down = 0;
|
||||
size_t up = size_t(end - beg);
|
||||
@@ -3898,7 +3898,7 @@ Warning! O(n^2) complexity. Use only inside VMA_HEAVY_ASSERT.
|
||||
T must be pointer type, e.g. VmaAllocation, VmaPool.
|
||||
*/
|
||||
template<typename T>
|
||||
-static bool VmaValidatePointerArray(uint32_t count, const T* arr)
|
||||
+static inline bool VmaValidatePointerArray(uint32_t count, const T* arr)
|
||||
{
|
||||
for (uint32_t i = 0; i < count; ++i)
|
||||
{
|
||||
@@ -4188,13 +4188,13 @@ static void VmaFree(const VkAllocationCallbacks* pAllocationCallbacks, void* ptr
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static T* VmaAllocate(const VkAllocationCallbacks* pAllocationCallbacks)
|
||||
+static inline T* VmaAllocate(const VkAllocationCallbacks* pAllocationCallbacks)
|
||||
{
|
||||
return (T*)VmaMalloc(pAllocationCallbacks, sizeof(T), VMA_ALIGN_OF(T));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static T* VmaAllocateArray(const VkAllocationCallbacks* pAllocationCallbacks, size_t count)
|
||||
+static inline T* VmaAllocateArray(const VkAllocationCallbacks* pAllocationCallbacks, size_t count)
|
||||
{
|
||||
return (T*)VmaMalloc(pAllocationCallbacks, sizeof(T) * count, VMA_ALIGN_OF(T));
|
||||
}
|
||||
@@ -4204,14 +4204,14 @@ static T* VmaAllocateArray(const VkAllocationCallbacks* pAllocationCallbacks, si
|
||||
#define vma_new_array(allocator, type, count) new(VmaAllocateArray<type>((allocator), (count)))(type)
|
||||
|
||||
template<typename T>
|
||||
-static void vma_delete(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr)
|
||||
+static inline void vma_delete(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr)
|
||||
{
|
||||
ptr->~T();
|
||||
VmaFree(pAllocationCallbacks, ptr);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static void vma_delete_array(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr, size_t count)
|
||||
+static inline void vma_delete_array(const VkAllocationCallbacks* pAllocationCallbacks, T* ptr, size_t count)
|
||||
{
|
||||
if (ptr != VMA_NULL)
|
||||
{
|
||||
@@ -4658,13 +4658,13 @@ void VmaVector<T, AllocatorT>::remove(size_t index)
|
||||
#endif // _VMA_VECTOR_FUNCTIONS
|
||||
|
||||
template<typename T, typename allocatorT>
|
||||
-static void VmaVectorInsert(VmaVector<T, allocatorT>& vec, size_t index, const T& item)
|
||||
+static inline void VmaVectorInsert(VmaVector<T, allocatorT>& vec, size_t index, const T& item)
|
||||
{
|
||||
vec.insert(index, item);
|
||||
}
|
||||
|
||||
template<typename T, typename allocatorT>
|
||||
-static void VmaVectorRemove(VmaVector<T, allocatorT>& vec, size_t index)
|
||||
+static inline void VmaVectorRemove(VmaVector<T, allocatorT>& vec, size_t index)
|
||||
{
|
||||
vec.remove(index);
|
||||
}
|
||||
@@ -10620,19 +10620,19 @@ static void VmaFree(VmaAllocator hAllocator, void* ptr)
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static T* VmaAllocate(VmaAllocator hAllocator)
|
||||
+static inline T* VmaAllocate(VmaAllocator hAllocator)
|
||||
{
|
||||
return (T*)VmaMalloc(hAllocator, sizeof(T), VMA_ALIGN_OF(T));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static T* VmaAllocateArray(VmaAllocator hAllocator, size_t count)
|
||||
+static inline T* VmaAllocateArray(VmaAllocator hAllocator, size_t count)
|
||||
{
|
||||
return (T*)VmaMalloc(hAllocator, sizeof(T) * count, VMA_ALIGN_OF(T));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static void vma_delete(VmaAllocator hAllocator, T* ptr)
|
||||
+static inline void vma_delete(VmaAllocator hAllocator, T* ptr)
|
||||
{
|
||||
if(ptr != VMA_NULL)
|
||||
{
|
||||
@@ -10642,7 +10642,7 @@ static void vma_delete(VmaAllocator hAllocator, T* ptr)
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
-static void vma_delete_array(VmaAllocator hAllocator, T* ptr, size_t count)
|
||||
+static inline void vma_delete_array(VmaAllocator hAllocator, T* ptr, size_t count)
|
||||
{
|
||||
if(ptr != VMA_NULL)
|
||||
{
|
||||
|
|
@ -1,7 +1 @@
|
|||
# AGENTS
|
||||
|
||||
Read and follow the AI policy found in `docs/policies/AI.md`, and the coding policies found in `docs/policies/Coding.md`.
|
||||
|
||||
Do not, under any circumstances, ever submit PRs or push commits on behalf of the user.
|
||||
|
||||
Keep comments to a reasonable level. Do not overexplain or add/remove comments from unrelated parts of the codebase.
|
||||
AI and LLM use is *strictly* prohibited within our codebase and surrounding community, including issues and comments. This includes using AI or LLMs to write docs/commit messages, debug issues, brainstorm ideas, research concepts, or search the codebase.
|
||||
|
|
|
|||
1
CLAUDE.md
Normal file
1
CLAUDE.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
AI and LLM use is *strictly* prohibited within our codebase and surrounding community, including issues and comments. This includes using AI or LLMs to write docs/commit messages, debug issues, brainstorm ideas, research concepts, or search the codebase.
|
||||
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
cmake_minimum_required(VERSION 3.31)
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "15.0" CACHE STRING "macOS deployment target")
|
||||
project(yuzu)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||
|
|
@ -29,23 +28,23 @@ if (NOT DEFINED ARCHITECTURE)
|
|||
endif()
|
||||
|
||||
# Needed for FFmpeg w/ VAAPI and DRM
|
||||
if (OPENBSD)
|
||||
if (PLATFORM_OPENBSD)
|
||||
# OpenBSD 7.8 broke libcxx when upgrading, so we must define the PSTL backend manually
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R6/lib")
|
||||
elseif (NETBSD)
|
||||
elseif (PLATFORM_NETBSD)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R7/lib")
|
||||
endif()
|
||||
|
||||
# NetBSD: Fun for the whole family!
|
||||
if (NETBSD)
|
||||
if (PLATFORM_NETBSD)
|
||||
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig")
|
||||
endif()
|
||||
|
||||
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "LINUX" OFF)
|
||||
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX" OFF)
|
||||
if (YUZU_STATIC_ROOM)
|
||||
set(YUZU_ROOM ON)
|
||||
set(YUZU_ROOM_STANDALONE ON)
|
||||
|
|
@ -80,12 +79,6 @@ set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundl
|
|||
cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
|
||||
|
||||
option(ENABLE_DEBUG_TOOLS "Enable debugging tools (maxwell disassembler, SPIRV translator, etc)" OFF)
|
||||
option(ENABLE_WERROR "Enable -Werror diagnostics" ON)
|
||||
|
||||
# Lossless Scaling frame generation. Only Android.
|
||||
cmake_dependent_option(ENABLE_LSFG "Enable Lossless Scaling frame generation" ON "ANDROID" OFF)
|
||||
|
||||
option(ENABLE_RESHADE "Enable ReShade FX post-processing effects" ON)
|
||||
|
||||
# non-linux bundled qt are static
|
||||
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
|
||||
|
|
@ -164,17 +157,6 @@ if (CXX_CLANG_CL)
|
|||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-reserved-identifier>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-deprecated-declarations>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type-mismatch>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-extensions>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++17-compat>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-reserved-user-defined-literal>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-deprecated-writable-strings>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-pedantic>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++0x-compat>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-c++11-compat-binary-literal>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-compat-pedantic>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-compat>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-compat>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc>)
|
||||
# REQUIRED CPU features IN Windows-amd64
|
||||
if (ARCHITECTURE_x86_64)
|
||||
|
|
@ -217,6 +199,8 @@ if(MSVC)
|
|||
endif()
|
||||
|
||||
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
|
||||
cmake_dependent_option(YUZU_USE_BUNDLED_SDL3 "Download bundled SDL3 build" "${MSVC}" "NOT ANDROID" OFF)
|
||||
|
||||
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
||||
|
||||
set(EXT_DEFAULT OFF)
|
||||
|
|
@ -224,11 +208,9 @@ if (MSVC OR ANDROID)
|
|||
set(EXT_DEFAULT ON)
|
||||
endif()
|
||||
|
||||
option(YUZU_USE_BUNDLED_SDL3 "Download bundled SDL3 build" ${EXT_DEFAULT})
|
||||
|
||||
# ffmpeg
|
||||
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${SOLARIS}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||
|
||||
# sirit
|
||||
set(BUNDLED_SIRIT_DEFAULT OFF)
|
||||
|
|
@ -239,9 +221,9 @@ endif()
|
|||
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${BUNDLED_SIRIT_DEFAULT})
|
||||
|
||||
# FreeBSD 15+ has libusb, versions below should disable it
|
||||
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR LINUX OR FREEBSD OR APPLE" OFF)
|
||||
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR PLATFORM_LINUX OR PLATFORM_FREEBSD OR APPLE" OFF)
|
||||
|
||||
cmake_dependent_option(ENABLE_OPENGL "Enable OpenGL" ON "NOT (WIN32 AND ARCHITECTURE_arm64) AND NOT APPLE AND NOT ANDROID" OFF)
|
||||
cmake_dependent_option(ENABLE_OPENGL "Enable OpenGL" ON "NOT (WIN32 AND ARCHITECTURE_arm64) AND NOT APPLE" OFF)
|
||||
mark_as_advanced(FORCE ENABLE_OPENGL)
|
||||
|
||||
option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
|
||||
|
|
@ -253,7 +235,7 @@ option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
|||
|
||||
# Install udev rules on Linux (mainly for gyros)
|
||||
# Only acts on joysticks and nothing else.
|
||||
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "LINUX" OFF)
|
||||
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "PLATFORM_LINUX" OFF)
|
||||
|
||||
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
||||
|
||||
|
|
@ -266,7 +248,7 @@ cmake_dependent_option(YUZU_ROOM_STANDALONE "Enable standalone room executable"
|
|||
|
||||
cmake_dependent_option(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF)
|
||||
|
||||
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
|
||||
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR PLATFORM_LINUX" OFF)
|
||||
|
||||
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" ON)
|
||||
set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database")
|
||||
|
|
@ -276,7 +258,7 @@ cmake_dependent_option(YUZU_USE_BUNDLED_MOLTENVK "Download bundled MoltenVK lib"
|
|||
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF)
|
||||
|
||||
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF)
|
||||
if (EXT_DEFAULT OR SOLARIS OR OPENBSD)
|
||||
if (EXT_DEFAULT OR PLATFORM_SUN OR PLATFORM_OPENBSD)
|
||||
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON)
|
||||
endif()
|
||||
|
||||
|
|
@ -299,7 +281,7 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/hooks/pre-commit AND NOT EXISTS ${PROJECT_SOURCE
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_arm64 AND (ANDROID OR LINUX))
|
||||
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
|
||||
set(HAS_NCE 1)
|
||||
add_compile_definitions(HAS_NCE=1)
|
||||
endif()
|
||||
|
|
@ -308,7 +290,7 @@ if (YUZU_ROOM)
|
|||
add_compile_definitions(YUZU_ROOM)
|
||||
endif()
|
||||
|
||||
if (UNIX AND NOT (LINUX OR WIN32))
|
||||
if (UNIX AND NOT (PLATFORM_LINUX OR WIN32))
|
||||
if(CXX_APPLE OR CXX_CLANG)
|
||||
# libc++ has stop_token and jthread as experimental
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexperimental-library")
|
||||
|
|
@ -343,12 +325,11 @@ if (CXX_GCC OR CXX_CLANG)
|
|||
endif()
|
||||
elseif(ARCHITECTURE_arm64)
|
||||
# See https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
|
||||
set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, optimized, armv9, native")
|
||||
set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, armv9, native")
|
||||
set(mtune generic)
|
||||
|
||||
if (${YUZU_BUILD_PRESET} STREQUAL "generic")
|
||||
set(march armv8-a)
|
||||
elseif (${YUZU_BUILD_PRESET} STREQUAL "optimized")
|
||||
set(march armv8.2-a+lse+rcpc)
|
||||
elseif (${YUZU_BUILD_PRESET} STREQUAL "armv9")
|
||||
set(march armv9-a)
|
||||
endif()
|
||||
|
|
@ -417,10 +398,13 @@ AddJsonPackage(boost)
|
|||
set(BOOST_NO_HEADERS ${Boost_ADDED})
|
||||
|
||||
if (Boost_ADDED)
|
||||
add_compile_definitions(YUZU_BOOST_v1)
|
||||
if (MSVC OR ANDROID)
|
||||
add_compile_definitions(YUZU_BOOST_v1)
|
||||
endif()
|
||||
|
||||
if (NOT MSVC OR CXX_CLANG)
|
||||
# solaris sucks
|
||||
if (SOLARIS)
|
||||
# boost sucks
|
||||
if (PLATFORM_SUN)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthreads>)
|
||||
endif()
|
||||
|
||||
|
|
@ -428,7 +412,8 @@ if (Boost_ADDED)
|
|||
target_compile_options(boost_icl INTERFACE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>)
|
||||
target_compile_options(boost_asio INTERFACE
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-conversion>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-implicit-fallthrough>)
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-implicit-fallthrough>
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -511,7 +496,7 @@ endfunction()
|
|||
# =============================================
|
||||
|
||||
if (APPLE)
|
||||
foreach(fw Carbon Metal Cocoa IOKit CoreVideo CoreMedia Security UniformTypeIdentifiers Foundation)
|
||||
foreach(fw Carbon Metal Cocoa IOKit CoreVideo CoreMedia Security UniformTypeIdentifiers)
|
||||
find_library(${fw}_LIBRARY ${fw} REQUIRED)
|
||||
list(APPEND PLATFORM_LIBRARIES ${${fw}_LIBRARY})
|
||||
endforeach()
|
||||
|
|
@ -523,9 +508,9 @@ elseif (WIN32)
|
|||
# PSAPI is the Process Status API
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock)
|
||||
endif()
|
||||
elseif (MANAGARM)
|
||||
elseif (PLATFORM_MANAGARM)
|
||||
set(PLATFORM_LIBRARIES iconv intl)
|
||||
elseif (HAIKUOS)
|
||||
elseif (PLATFORM_HAIKU)
|
||||
# Haiku is so special :)
|
||||
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
|
||||
|
|
@ -539,6 +524,7 @@ add_subdirectory(externals)
|
|||
# pass targets from externals
|
||||
# TODO(crueter): CPMUtil Propagate func?
|
||||
find_package(enet)
|
||||
find_package(unordered_dense REQUIRED)
|
||||
|
||||
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||
find_package(xbyak)
|
||||
|
|
@ -618,7 +604,7 @@ if (ENABLE_QT)
|
|||
|
||||
# Best practice is to ask for all components at once, so they are from the same version
|
||||
set(YUZU_QT_COMPONENTS Core Widgets Charts Concurrent Gui)
|
||||
if (LINUX OR FREEBSD)
|
||||
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
|
||||
list(APPEND YUZU_QT_COMPONENTS DBus)
|
||||
# yes Qt, we get it
|
||||
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
||||
|
|
|
|||
|
|
@ -552,6 +552,7 @@ macro(parse_object object)
|
|||
get_json_element("${object}" repo repo)
|
||||
get_json_element("${object}" ci ci OFF)
|
||||
get_json_element("${object}" version version)
|
||||
get_json_element("${object}" min_version min_version)
|
||||
get_json_element("${object}" git_host git_host "github.com")
|
||||
|
||||
if (NOT version)
|
||||
|
|
@ -570,8 +571,8 @@ macro(parse_object object)
|
|||
set(disabled_platforms "")
|
||||
endif()
|
||||
else()
|
||||
# TODO: correct hash if missing
|
||||
get_json_element("${object}" hash hash)
|
||||
get_json_element("${object}" min_version min_version)
|
||||
get_json_element("${object}" url url)
|
||||
get_json_element("${object}" artifact artifact)
|
||||
get_json_element("${object}" source_subdir source_subdir)
|
||||
|
|
@ -944,8 +945,8 @@ function(AddCIPackage)
|
|||
REPO
|
||||
PACKAGE
|
||||
EXTENSION
|
||||
GIT_HOST
|
||||
PKGNAME)
|
||||
MIN_VERSION
|
||||
GIT_HOST)
|
||||
|
||||
set(multiValueArgs DISABLED_PLATFORMS)
|
||||
|
||||
|
|
@ -995,104 +996,9 @@ function(AddCIPackage)
|
|||
set(ARTIFACT_REPO ${PKG_ARGS_REPO})
|
||||
set(ARTIFACT_PACKAGE ${PKG_ARGS_PACKAGE})
|
||||
|
||||
# plat/archname
|
||||
if (DEFINED PKG_ARGS_PKGNAME)
|
||||
set(pkgname ${PKG_ARGS_PKGNAME})
|
||||
else()
|
||||
if (MSVC)
|
||||
set(platname windows)
|
||||
elseif(MINGW)
|
||||
set(platname mingw)
|
||||
elseif(ANDROID)
|
||||
set(platname android)
|
||||
elseif(LINUX)
|
||||
set(platname linux)
|
||||
elseif(IOS)
|
||||
set(platname ios)
|
||||
elseif(APPLE)
|
||||
set(platname macos)
|
||||
else()
|
||||
cpm_utils_message(WARNING
|
||||
"Unsupported platform ${CMAKE_SYSTEM_NAME} for CI packages")
|
||||
endif()
|
||||
# TODO: Use amd64/aarch64 naming for everything.
|
||||
# Also drop macos universal
|
||||
|
||||
if (CPMUTIL_AMD64)
|
||||
set(archname amd64)
|
||||
elseif(CPMUTIL_ARM64)
|
||||
set(archname aarch64)
|
||||
elseif(CPMUTIL_RISCV64)
|
||||
set(archname riscv64)
|
||||
endif()
|
||||
|
||||
if (APPLE AND NOT CPMUTIL_ARM64)
|
||||
cpm_utils_message(WARNING
|
||||
"Unsupported platform/arch combo for CI packages")
|
||||
endif()
|
||||
|
||||
if (DEFINED platname AND DEFINED archname)
|
||||
set(pkgname ${platname}-${archname})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (DEFINED pkgname
|
||||
AND NOT "${pkgname}" IN_LIST DISABLED_PLATFORMS)
|
||||
set(ARTIFACT
|
||||
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}")
|
||||
|
||||
if (PKG_ARGS_MODULE_PATH)
|
||||
set(EXTRA_ARGS MODULE_PATH)
|
||||
endif()
|
||||
|
||||
# download sha512sum file
|
||||
# TODO: CI pkgs
|
||||
set(sha512sum_url
|
||||
"https://${ARTIFACT_GIT_HOST}/${ARTIFACT_REPO}/releases/download/${ARTIFACT_VERSION}/${ARTIFACT}.sha512sum")
|
||||
set(sha512sum_file
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/.cpmutil_${ARTIFACT}_sha512sum")
|
||||
|
||||
file(DOWNLOAD "${sha512sum_url}" "${sha512sum_file}"
|
||||
STATUS sha512sum_status)
|
||||
list(GET sha512sum_status 0 sha512sum_error)
|
||||
|
||||
if(sha512sum_error)
|
||||
message(FATAL_ERROR "[CPMUtil] Failed to download sha512sum "
|
||||
"for ${ARTIFACT_NAME} from ${sha512sum_url}")
|
||||
endif()
|
||||
|
||||
file(READ "${sha512sum_file}" sha512sum_hash)
|
||||
string(STRIP "${sha512sum_hash}" sha512sum_hash)
|
||||
file(REMOVE "${sha512sum_file}")
|
||||
|
||||
AddPackage(
|
||||
NAME ${ARTIFACT_PACKAGE}
|
||||
REPO ${ARTIFACT_REPO}
|
||||
VERSION ${ARTIFACT_VERSION}
|
||||
ARTIFACT ${ARTIFACT}
|
||||
CUSTOM_KEY "${ARTIFACT_VERSION}-${pkgname}"
|
||||
HASH ${sha512sum_hash}
|
||||
FORCE_BUNDLED_PACKAGE ON
|
||||
${EXTRA_ARGS})
|
||||
|
||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||
Propagate(${ARTIFACT_PACKAGE}_SOURCE_DIR)
|
||||
Propagate(CMAKE_PREFIX_PATH)
|
||||
else()
|
||||
cpm_utils_message(FATAL_ERROR "${ARTIFACT_NAME}:"
|
||||
"Unsupported platform ${pkgname} for CI package")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Utility function for Qt
|
||||
function(AddQt repo version)
|
||||
if (NOT DEFINED repo)
|
||||
message(FATAL_ERROR "[CPMUtil] AddQt: repo is required")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED version)
|
||||
message(FATAL_ERROR "[CPMUtil] AddQt: version is required")
|
||||
endif()
|
||||
|
||||
# TODO: update Qt
|
||||
if (MSVC)
|
||||
set(platname windows)
|
||||
elseif(MINGW)
|
||||
|
|
@ -1129,6 +1035,64 @@ function(AddQt repo version)
|
|||
set(pkgname ${platname}-${archname})
|
||||
endif()
|
||||
|
||||
if (DEFINED pkgname
|
||||
AND NOT "${pkgname}" IN_LIST DISABLED_PLATFORMS)
|
||||
set(ARTIFACT
|
||||
"${ARTIFACT_NAME}-${pkgname}-${ARTIFACT_VERSION}.${ARTIFACT_EXT}")
|
||||
|
||||
if (PKG_ARGS_MODULE_PATH)
|
||||
set(EXTRA_ARGS MODULE_PATH)
|
||||
endif()
|
||||
|
||||
# download sha512sum file
|
||||
# TODO: CI pkgs
|
||||
set(sha512sum_url
|
||||
"https://${ARTIFACT_GIT_HOST}/${ARTIFACT_REPO}/releases/download/v${ARTIFACT_VERSION}/${ARTIFACT}.sha512sum")
|
||||
set(sha512sum_file
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/.cpmutil_${ARTIFACT}_sha512sum")
|
||||
|
||||
file(DOWNLOAD "${sha512sum_url}" "${sha512sum_file}"
|
||||
STATUS sha512sum_status)
|
||||
list(GET sha512sum_status 0 sha512sum_error)
|
||||
|
||||
if(sha512sum_error)
|
||||
message(FATAL_ERROR "[CPMUtil] Failed to download sha512sum "
|
||||
"for ${ARTIFACT_NAME} from ${sha512sum_url}")
|
||||
endif()
|
||||
|
||||
file(READ "${sha512sum_file}" sha512sum_hash)
|
||||
string(STRIP "${sha512sum_hash}" sha512sum_hash)
|
||||
file(REMOVE "${sha512sum_file}")
|
||||
|
||||
AddPackage(
|
||||
NAME ${ARTIFACT_PACKAGE}
|
||||
REPO ${ARTIFACT_REPO}
|
||||
VERSION "v${ARTIFACT_VERSION}"
|
||||
ARTIFACT ${ARTIFACT}
|
||||
CUSTOM_KEY "${ARTIFACT_VERSION}-${pkgname}"
|
||||
HASH ${sha512sum_hash}
|
||||
FORCE_BUNDLED_PACKAGE ON
|
||||
${EXTRA_ARGS})
|
||||
|
||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||
Propagate(${ARTIFACT_PACKAGE}_SOURCE_DIR)
|
||||
Propagate(CMAKE_PREFIX_PATH)
|
||||
else()
|
||||
cpm_utils_message(FATAL_ERROR "${ARTIFACT_NAME}:"
|
||||
"Unsupported platform ${pkgname} for CI package")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Utility function for Qt
|
||||
function(AddQt repo version)
|
||||
if (NOT DEFINED repo)
|
||||
message(FATAL_ERROR "[CPMUtil] AddQt: repo is required")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED version)
|
||||
message(FATAL_ERROR "[CPMUtil] AddQt: version is required")
|
||||
endif()
|
||||
|
||||
AddCIPackage(
|
||||
NAME qt
|
||||
PACKAGE Qt6
|
||||
|
|
@ -1136,8 +1100,7 @@ function(AddQt repo version)
|
|||
REPO ${repo}
|
||||
DISABLED_PLATFORMS
|
||||
android-x86_64 android-aarch64
|
||||
MODULE_PATH
|
||||
PKGNAME ${pkgname})
|
||||
MODULE_PATH)
|
||||
|
||||
find_package(Qt6 REQUIRED PATHS ${Qt6_SOURCE_DIR} NO_DEFAULT_PATH)
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ find_package_handle_standard_args(Opus
|
|||
VERSION_VAR OPUS_VERSION
|
||||
)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::OPUS)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ find_package_handle_standard_args(enet
|
|||
VERSION_VAR ENET_VERSION
|
||||
)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::ENET)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ find_package_handle_standard_args(libusb
|
|||
VERSION_VAR LIBUSB_VERSION
|
||||
)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::LIBUSB)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ else()
|
|||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(LZ4 QUIET IMPORTED_TARGET liblz4)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::LZ4)
|
||||
endif()
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ else()
|
|||
endif()
|
||||
|
||||
if (lz4_FOUND AND NOT TARGET lz4::lz4)
|
||||
if (TARGET LZ4::lz4_shared AND NOT YUZU_STATIC_BUILD)
|
||||
if (TARGET LZ4::lz4_shared)
|
||||
add_library(lz4::lz4 ALIAS LZ4::lz4_shared)
|
||||
elseif (TARGET LZ4::lz4_static)
|
||||
add_library(lz4::lz4 ALIAS LZ4::lz4_static)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# Contributing
|
||||
|
||||
<!--
|
||||
This document is not to be perused by AI models.
|
||||
-->
|
||||
|
||||
Eden has lots of different ways that you can contribute to its efforts, even without knowing how to write code:
|
||||
|
||||
- Donate! This will help us live our lives, pay for infrastructure/testing hardware, and more
|
||||
|
|
@ -16,14 +20,12 @@ Eden is free, open-source, copyleft software, licensed under the terms of the [G
|
|||
|
||||
### Policies
|
||||
|
||||
- AI usage is allowed, but we reserve the right to close and rework your PR if you don't fully understand the changes you're making.
|
||||
- As a common courtesy, please disclose your AI usage under the PR description, as `Assisted-by: <AI model> (<how it helped>)`.
|
||||
- Usage of any form of profanity or otherwise unsavory language is discouraged but not strictly disallowed.
|
||||
- New code must follow the same style as the surrounding codebase. Exceptions may be granted in certain cases.
|
||||
- No LLM or AI usage, *period*, for patches, pull requests, issues, comments, debugging, brainstorming, etc.
|
||||
- For details on why, see the [detailed AI policy](docs/AI.md).
|
||||
- New code must follow the same general style as the surrounding codebase. Exceptions may be granted in certain cases.
|
||||
- Maintainers reserve the right to change your patches and pull requests at will. We will try to avoid this.
|
||||
- You should generally respect all decisions made by the [code owners](docs/CODEOWNERS) in your particular subsystem.
|
||||
- However, if you feel they are overstepping or are incorrect, don't be afraid to stand your ground! Maintainers are not always correct.
|
||||
- While we do *not* adhere to the terms of a formal code of conduct, you are expected to treat other developers, contributors, and community members respectfully.
|
||||
- You should respect all decisions made by the [code owners](docs/CODEOWNERS) in your particular subsystem. If you feel they are overstepping or are incorrect, don't be afraid to stand your ground!
|
||||
- While we do *not* adhere to the terms of a formal code of conduct, you will generally be expected to respect other developers, contributors, and community members.
|
||||
- You **must** have basic knowledge of [Git](https://git-scm.com/learn). Knowing how to manage your branches and follow proper fork policies is a necessity.
|
||||
|
||||
### Where do I start?
|
||||
|
|
@ -37,8 +39,7 @@ You may also search for open issues on [GitHub](https://github.com/eden-emulator
|
|||
There are five primary ways to contribute.
|
||||
|
||||
- Submit pull requests directly to our source tree
|
||||
- You must first [create an account](https://git.eden-emu.dev/user/sign_up).
|
||||
- You may use an internal account, or you may use a GitHub/Codeberg account linked to our instance.
|
||||
- You must first request an account on our Forgejo. See [Signup](#how-do-i-sign-up)
|
||||
- Submit pull requests to our [GitHub mirror](https://github.com/eden-emulator/Issue-Reports)
|
||||
- Note that this is subject to being removed by DMCA, so don't rely on this.
|
||||
- Submit pull requests to our [Codeberg mirror](https://codeberg.org/eden-emu/eden)
|
||||
|
|
@ -50,8 +51,31 @@ There are five primary ways to contribute.
|
|||
|
||||
To test your changes, ensure to read the [build documentation](./docs/Build.md) for your specific platform(s) to ensure everything compiles and works properly. You should also make sure that your branch is up-to-date with the upstream `master` branch before opening a pull request.
|
||||
|
||||
### How do I sign up?
|
||||
|
||||
<details>
|
||||
<summary>To sign up and begin contributing... (click to open)</summary>
|
||||
|
||||
Email [crueter@crueter.xyz](mailto:crueter@crueter.xyz) with the following format:
|
||||
|
||||
```txt
|
||||
Subject: [Eden Git] Registration Request
|
||||
Username: <Your Desired Username>
|
||||
Email: <Your Desired Email>
|
||||
I wish to sign up because... <your reason here>
|
||||
```
|
||||
|
||||
Received mail that does not follow this format will be ignored.
|
||||
|
||||
Once your request is processed, you will receive a confirmation email with your temporary password and some information on Git access and policies. If you do not receive a response within 48 hours, feel free to send another email.
|
||||
|
||||
> [!WARNING]
|
||||
> Some email providers may place the response email in your spam/junk folder; notable offenders include Gmail and Outlook. *Always* ensure to check your Spam or Junk folder.
|
||||
|
||||
</details>
|
||||
|
||||
## Non-code Contributions
|
||||
|
||||
Alongside the other contribution methods listed up top, you can also choose to contribute through documentation, organization, or community guides. These can be done either through the code contribution methods described above, or created externally and shared via our Discord community.
|
||||
|
||||
If you have an external tool/page that you believe would be handy to integrate/link into Eden, please additionally email our developers at [`developers@eden-emu.dev`](mailto:developers@eden-emu.dev).
|
||||
If you have an external tool/page that you believe would be handy to integrate/link into Eden, please additionally email our developers at [`developers@eden-emu.dev`](mailto:developers@eden-emu.dev). **Do not submit vibe-coded or AI generated tools or applications**.
|
||||
|
|
|
|||
21
README.md
21
README.md
|
|
@ -2,6 +2,8 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
||||
|
||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
|
@ -15,9 +17,8 @@
|
|||
<br>
|
||||
</h1>
|
||||
|
||||
<h4 align="center"><b>Eden</b> is a free and open-source (FOSS) Switch 1 emulator started by developer Camille LaVey.
|
||||
<br>
|
||||
Written in C++, with builds for Windows, Linux, macOS, Android, FreeBSD and more.
|
||||
<h4 align="center"><b>Eden</b> is a free and opensource (FOSS) Switch 1 emulator, derived from Yuzu and Sudachi - started by developer Camille LaVey.
|
||||
It's written in C++ with portability in mind, with builds for Windows, Linux, macOS, Android, FreeBSD and more.
|
||||
</h4>
|
||||
|
||||
<p align="center">
|
||||
|
|
@ -74,17 +75,3 @@ Save us some bandwidth! We have [mirrors available](./docs/user/ThirdParty.md#mi
|
|||
## License
|
||||
|
||||
Eden is licensed under the GPLv3 (or any later version). Refer to the [LICENSE.txt](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/LICENSE.txt) file.
|
||||
|
||||
## Special thanks
|
||||
|
||||
Super special thanks to Cloudflare for preventing the git server from blowing up.
|
||||
|
||||
- Yuzu
|
||||
- Ryujinx
|
||||
- Sudachi
|
||||
- Citron
|
||||
- Torzu
|
||||
- Suyu
|
||||
- Ryubing
|
||||
|
||||
And everyone who continues or had contributed to the project! <3
|
||||
|
|
|
|||
71
cpmfile.json
71
cpmfile.json
|
|
@ -6,19 +6,22 @@
|
|||
"version": "v0.19.0"
|
||||
},
|
||||
"boost": {
|
||||
"artifact": "boost-%VERSION%.tar.zst",
|
||||
"artifact": "%VERSION%-cmake.tar.xz",
|
||||
"find_args": "CONFIG OPTIONAL_COMPONENTS headers context system fiber filesystem",
|
||||
"hash": "681d97be4386767662e230b2e7c9754d45e709cc5db4e747c23c27d1f5b0e87770bdf19b0bc44dcb0e8349324887bbb8fffb432098f4d0ce74a5043021a90afc",
|
||||
"hash": "6ae6e94664fe7f2fb01976b59b276ac5df8085c7503fa829d810fbfe495960cfec44fa2c36e2cb23480bc19c956ed199d4952b02639a00a6c07625d4e7130c2d",
|
||||
"min_version": "1.57",
|
||||
"package": "Boost",
|
||||
"repo": "eden-emulator/ext-boost",
|
||||
"version": "1.92.0"
|
||||
"patches": [
|
||||
"0001-clang-cl.patch"
|
||||
],
|
||||
"repo": "boostorg/boost",
|
||||
"version": "boost-1.90.0"
|
||||
},
|
||||
"boost_headers": {
|
||||
"bundled": true,
|
||||
"hash": "c5fa2cd72f6e6666b7963b97bc359c75284b8fb540c30f3629a028b85270c9bc66c8a051383964f2bd4c1e005a4691593d15696e7ef39ea87cf6cff9e5691fb2",
|
||||
"hash": "4ef845775e2277a8104ded6ddf749aa262ce52cf8438042869a048f9a0156dd772fbbcfa74efa1378fecef339b7286f6fe4b4feb5c45d49966b35d08e3e83507",
|
||||
"repo": "boostorg/headers",
|
||||
"version": "boost-1.91.0"
|
||||
"version": "boost-1.90.0"
|
||||
},
|
||||
"catch2": {
|
||||
"hash": "7eea385d79d88a5690cde131fe7ccda97d5c54ea09d6f515000d7bf07c828809d61c1ac99912c1ee507cf933f61c1c47ecdcc45df7850ffa82714034b0fccf35",
|
||||
|
|
@ -57,10 +60,10 @@
|
|||
},
|
||||
"discord-rpc": {
|
||||
"find_args": "MODULE",
|
||||
"hash": "8d680b3a16d6f6bf292ad823cf8635595ff986f2a49f758e3009f505b540a9d75194a8cf44cddea75736a8c3e3b5160166e716a0939ce3f18cc463cf648753fe",
|
||||
"hash": "8213c43dcb0f7d479f5861091d111ed12fbdec1e62e6d729d65a4bc181d82f48a35d5fd3cd5c291f2393ac7c9681eabc6b76609755f55376284c8a8d67e148f3",
|
||||
"package": "DiscordRPC",
|
||||
"repo": "eden-emulator/discord-rpc",
|
||||
"version": "76616d8675"
|
||||
"version": "0d8b2d6a37"
|
||||
},
|
||||
"enet": {
|
||||
"find_args": "MODULE",
|
||||
|
|
@ -76,10 +79,11 @@
|
|||
},
|
||||
"ffmpeg-ci": {
|
||||
"ci": true,
|
||||
"min_version": "4.1",
|
||||
"name": "ffmpeg",
|
||||
"package": "FFmpeg",
|
||||
"repo": "crueter-ci/FFmpeg",
|
||||
"version": "9.0.2-1790726865-946fcce07b"
|
||||
"version": "8.0.1-c7b5f1537d"
|
||||
},
|
||||
"fmt": {
|
||||
"hash": "f0da82c545b01692e9fd30fdfb613dbb8dd9716983dcd0ff19ac2a8d36f74beb5540ef38072fdecc1e34191b3682a8542ecbf3a61ef287dbba0a2679d4e023f2",
|
||||
|
|
@ -175,6 +179,12 @@
|
|||
"repo": "eden-emulator/oaknut",
|
||||
"version": "v2.0.3"
|
||||
},
|
||||
"oboe": {
|
||||
"bundled": true,
|
||||
"hash": "ce4011afe7345370d4ead3b891cd69a5ef224b129535783586c0ca75051d303ed446e6c7f10bde8da31fff58d6e307f1732a3ffd03b249f9ef1fd48fd4132715",
|
||||
"repo": "google/oboe",
|
||||
"version": "1.10.0"
|
||||
},
|
||||
"openssl": {
|
||||
"hash": "29002ce50cb95a4f4f1d0e9d3f684401fbd4eac34203dc2eef3b6334af5d44aa46bf788b63a6f5c139c383eafb7269ae87a58a9a3ad5912903b9773e545ccc0a",
|
||||
"min_version": "3.0.0",
|
||||
|
|
@ -187,10 +197,11 @@
|
|||
},
|
||||
"openssl-ci": {
|
||||
"ci": true,
|
||||
"min_version": "3.0.0",
|
||||
"name": "openssl",
|
||||
"package": "OpenSSL",
|
||||
"repo": "crueter-ci/OpenSSL",
|
||||
"version": "4.0.1-1788234794-b64f68a94e"
|
||||
"version": "4.0.0-11b7b6ea3b"
|
||||
},
|
||||
"openssl-cmake": {
|
||||
"bundled": true,
|
||||
|
|
@ -235,14 +246,6 @@
|
|||
"repo": "stachenov/quazip",
|
||||
"version": "2e95c9001b"
|
||||
},
|
||||
"reshade": {
|
||||
"hash": "6fc9b39821ca6e2d91160f05846b3a42159fec759f5d6fba91d1a57801a1bdaf6047740578c136f0b1a60a9c29ad160d87dbfe0dbfbcdf6ea879a8a078377b8c",
|
||||
"patches": [
|
||||
"0001-from-chars-fallback.patch"
|
||||
],
|
||||
"repo": "crosire/reshade",
|
||||
"version": "v6.8.0"
|
||||
},
|
||||
"sdl3": {
|
||||
"hash": "df5a323af7ac366661a3c0e887969c72584d232f3cc211419d59b0487b620b6b2859d4549c9e8df002ee489290062e466fcfddf7edc0872a37b1f2845e81c0f3",
|
||||
"min_version": "3.2.10",
|
||||
|
|
@ -252,10 +255,11 @@
|
|||
},
|
||||
"sdl3-ci": {
|
||||
"ci": true,
|
||||
"min_version": "3.2.10",
|
||||
"name": "SDL3",
|
||||
"package": "SDL3",
|
||||
"repo": "crueter-ci/SDL3",
|
||||
"version": "3.4.14-1788231389-147a8ee32d"
|
||||
"version": "3.4.8-d57c3b685c"
|
||||
},
|
||||
"simpleini": {
|
||||
"find_args": "MODULE",
|
||||
|
|
@ -278,7 +282,7 @@
|
|||
"name": "sirit",
|
||||
"package": "sirit",
|
||||
"repo": "eden-emulator/sirit",
|
||||
"version": "v1.0.7"
|
||||
"version": "1.0.5"
|
||||
},
|
||||
"spirv-headers": {
|
||||
"hash": "d624371dd455c66a300344c89812598ffe11b5eedba555779f789e85c29dc67317741858c60e0744a1e6755cc0d2759b8659f0674f4cc31479c4cb6fc25ed23b",
|
||||
|
|
@ -297,6 +301,17 @@
|
|||
"repo": "eden-emu/tzdb_to_nx",
|
||||
"version": "230326"
|
||||
},
|
||||
"unordered-dense": {
|
||||
"bundled": true,
|
||||
"find_args": "CONFIG",
|
||||
"hash": "d2106f6640f6bfb81755e4b8bfb64982e46ec4a507cacdb38f940123212ccf35a20b43c70c6f01d7bfb8c246d1a16f7845d8052971949cea9def1475e3fa02c8",
|
||||
"package": "unordered_dense",
|
||||
"patches": [
|
||||
"0001-avoid-memset-when-clearing-an-empty-table.patch"
|
||||
],
|
||||
"repo": "martinus/unordered_dense",
|
||||
"version": "7b55cab841"
|
||||
},
|
||||
"vulkan-headers": {
|
||||
"hash": "d2846ea228415772645eea4b52a9efd33e6a563043dd3de059e798be6391a8f0ca089f455ae420ff22574939ed0f48ed7c6ff3d5a9987d5231dbf3b3f89b484b",
|
||||
"min_version": "1.4.317",
|
||||
|
|
@ -308,9 +323,6 @@
|
|||
"find_args": "CONFIG",
|
||||
"hash": "deb5902ef8db0e329fbd5f3f4385eb0e26bdd9f14f3a2334823fb3fe18f36bc5d235d620d6e5f6fe3551ec3ea7038638899db8778c09f6d5c278f5ff95c3344b",
|
||||
"package": "VulkanMemoryAllocator",
|
||||
"patches": [
|
||||
"0001-macos-clang.patch"
|
||||
],
|
||||
"repo": "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
|
||||
"version": "v3.3.0"
|
||||
},
|
||||
|
|
@ -328,15 +340,10 @@
|
|||
"version": "vulkan-sdk-%NUMERIC_VERSION%"
|
||||
},
|
||||
"xbyak": {
|
||||
"hash": "e0aa0a603dd3ac1a39d82213df1e73c042831aec2d6b2fe382c899651eaae4ed7e8aeb6be9c41ea0097087c9d091961ab18f313cd6a9e10d621715ffd49bfe36",
|
||||
"hash": "b6475276b2faaeb315734ea8f4f8bd87ededcee768961b39679bee547e7f3e98884d8b7851e176d861dab30a80a76e6ea302f8c111483607dde969b4797ea95a",
|
||||
"package": "xbyak",
|
||||
"repo": "herumi/xbyak",
|
||||
"version": "v7.40.1"
|
||||
},
|
||||
"zbic": {
|
||||
"hash": "fbe2f37986377d7f0d96ae3224c80b5971df6e8b6961f68061f1975ebb2e8cb78f07b90f014b007be4023dbf5513581504e7f7d61a5237cb2a8a7a61ae11e482",
|
||||
"repo": "kinnay/zbic",
|
||||
"version": "11b08f2712264bbed731545085cbd9702096ceb7"
|
||||
"version": "v7.35.2"
|
||||
},
|
||||
"zlib": {
|
||||
"hash": "16fea4df307a68cf0035858abe2fd550250618a97590e202037acd18a666f57afc10f8836cbbd472d54a0e76539d0e558cb26f059d53de52ff90634bbf4f47d4",
|
||||
|
|
@ -351,13 +358,13 @@
|
|||
},
|
||||
"zstd": {
|
||||
"find_args": "MODULE",
|
||||
"hash": "2b006c3c110c38bd2f5896b42d36a38931c8eae261f30552f9a9fd04458d218d8f1a1425f117fd12af545ed77042e4b2d1a1a9b6286c4d0b9d74ef79f20a8f08",
|
||||
"hash": "cc5ad4b119a9c2ea57f0b71eeff01113bb506e0d17000159c5409cb8236d22e38c52d5e9e97e7947a4bf1b2dfc44b6c503ab2d9aedbd59458435c6a2849cb029",
|
||||
"min_version": "1.5",
|
||||
"options": [
|
||||
"ZSTD_BUILD_SHARED OFF"
|
||||
],
|
||||
"repo": "facebook/zstd",
|
||||
"source_subdir": "build/cmake",
|
||||
"version": "33618c8"
|
||||
"version": "b8d6101fba"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue