diff --git a/.ci/linux/build.sh b/.ci/linux/build.sh
index a92cb3fd91..114df7051b 100755
--- a/.ci/linux/build.sh
+++ b/.ci/linux/build.sh
@@ -3,47 +3,53 @@
# SPDX-FileCopyrightText: 2025 eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
-
case "$1" in
- amd64|"")
- echo "Making amd64-v3 optimized build of Eden"
- ARCH="amd64_v3"
- ARCH_FLAGS="-march=x86-64-v3"
- ;;
- steamdeck|zen2)
- echo "Making Steam Deck (Zen 2) optimized build of Eden"
- ARCH="steamdeck"
- ARCH_FLAGS="-march=znver2 -mtune=znver2"
- ;;
- rog-ally|allyx|zen4)
- echo "Making ROG Ally X (Zen 4) optimized build of Eden"
- ARCH="rog-ally-x"
- ARCH_FLAGS="-march=znver4 -mtune=znver4"
- ;;
- legacy)
- echo "Making amd64 generic build of Eden"
- ARCH=amd64
- ARCH_FLAGS="-march=x86-64 -mtune=generic"
- ;;
- aarch64)
- echo "Making armv8-a build of Eden"
- ARCH=aarch64
- ARCH_FLAGS="-march=armv8-a -mtune=generic -w"
- ;;
- armv9)
- echo "Making armv9-a build of Eden"
- ARCH=armv9
- ARCH_FLAGS="-march=armv9-a -mtune=generic -w"
- ;;
- native)
- echo "Making native build of Eden"
- ARCH="$(uname -m)"
- ARCH_FLAGS="-march=native -mtune=native"
- ;;
- *)
- echo "Invalid target $1 specified, must be one of native, amd64, steamdeck, zen2, allyx, rog-ally, zen4, legacy, aarch64, armv9"
- exit 1
- ;;
+amd64 | "")
+ echo "Making amd64-v3 optimized build of Eden"
+ ARCH="amd64_v3"
+ ARCH_FLAGS="-march=x86-64-v3"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=v3)
+ ;;
+steamdeck | zen2)
+ echo "Making Steam Deck (Zen 2) optimized build of Eden"
+ ARCH="steamdeck"
+ ARCH_FLAGS="-march=znver2 -mtune=znver2"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=zen2 -DYUZU_SYSTEM_PROFILE=steamdeck)
+ ;;
+rog-ally | allyx | zen4)
+ echo "Making ROG Ally X (Zen 4) optimized build of Eden"
+ ARCH="rog-ally-x"
+ ARCH_FLAGS="-march=znver4 -mtune=znver4"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=zen2 -DYUZU_SYSTEM_PROFILE=steamdeck)
+ ;;
+legacy)
+ echo "Making amd64 generic build of Eden"
+ ARCH=amd64
+ ARCH_FLAGS="-march=x86-64 -mtune=generic"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=generic)
+ ;;
+aarch64)
+ echo "Making armv8-a build of Eden"
+ ARCH=aarch64
+ ARCH_FLAGS="-march=armv8-a -mtune=generic -w"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=generic)
+ ;;
+armv9)
+ echo "Making armv9-a build of Eden"
+ ARCH=armv9
+ ARCH_FLAGS="-march=armv9-a -mtune=generic -w"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=armv9)
+ ;;
+native)
+ echo "Making native build of Eden"
+ ARCH="$(uname -m)"
+ ARCH_FLAGS="-march=native -mtune=native"
+ export EXTRA_CMAKE_FLAGS=(-DYUZU_BUILD_PRESET=native)
+ ;;
+*)
+ echo "Invalid target $1 specified, must be one of native, amd64, steamdeck, zen2, allyx, rog-ally, zen4, legacy, aarch64, armv9"
+ exit 1
+ ;;
esac
export ARCH_FLAGS="$ARCH_FLAGS -O3"
@@ -55,10 +61,10 @@ fi
if [ "$1" != "" ]; then shift; fi
if [ "$TARGET" = "appimage" ]; then
- export EXTRA_CMAKE_FLAGS=(-DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
+ export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DCMAKE_INSTALL_PREFIX=/usr -DYUZU_ROOM=ON -DYUZU_ROOM_STANDALONE=OFF -DYUZU_CMD=OFF)
else
# For the linux-fresh verification target, verify compilation without PCH as well.
- export EXTRA_CMAKE_FLAGS=(-DYUZU_USE_PRECOMPILED_HEADERS=OFF)
+ export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" -DYUZU_USE_PRECOMPILED_HEADERS=OFF)
fi
if [ "$DEVEL" != "true" ]; then
@@ -86,7 +92,7 @@ export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
mkdir -p build && cd build
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
- -DENABLE_QT_TRANSLATION=ON \
+ -DENABLE_QT_TRANSLATION=ON \
-DUSE_DISCORD_PRESENCE=ON \
-DCMAKE_CXX_FLAGS="$ARCH_FLAGS" \
-DCMAKE_C_FLAGS="$ARCH_FLAGS" \
@@ -99,12 +105,12 @@ cmake .. -G Ninja \
-DYUZU_USE_QT_WEB_ENGINE=$WEBENGINE \
-DYUZU_USE_FASTER_LD=ON \
-DYUZU_ENABLE_LTO=ON \
- "${EXTRA_CMAKE_FLAGS[@]}"
+ "${EXTRA_CMAKE_FLAGS[@]}"
ninja -j${NPROC}
if [ -d "bin/Release" ]; then
- strip -s bin/Release/*
+ strip -s bin/Release/*
else
- strip -s bin/*
+ strip -s bin/*
fi
diff --git a/.ci/linux/package.sh b/.ci/linux/package.sh
index 41e07ea207..911fea2f7b 100755
--- a/.ci/linux/package.sh
+++ b/.ci/linux/package.sh
@@ -92,7 +92,6 @@ chmod +x ./sharun-aio
xvfb-run -a ./sharun-aio l -p -v -e -s -k \
../$BUILDDIR/bin/eden* \
$LIBDIR/lib*GL*.so* \
- $LIBDIR/libSDL2*.so* \
$LIBDIR/dri/* \
$LIBDIR/vdpau/* \
$LIBDIR/libvulkan* \
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 941f94ae26..ac67f73d00 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -2,9 +2,9 @@
# some stuff needs cleaned up etc
name: eden-build
-on:
- push:
- branches: [ "master" ]
+#on:
+# push:
+# branches: [ "master" ]
# TODO: combine build.yml into trigger_release.yml
jobs:
diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml
index 638ab3424b..645b21e25a 100644
--- a/.github/workflows/trigger_release.yml
+++ b/.github/workflows/trigger_release.yml
@@ -1,8 +1,8 @@
name: Build Application and Make Release
-on:
- push:
- tags: [ "*" ]
+#on:
+# push:
+# tags: [ "*" ]
permissions:
contents: write
diff --git a/.gitmodules b/.gitmodules
index 371b62a605..10f9f7de96 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,15 +16,9 @@
[submodule "opus"]
path = externals/opus
url = https://github.com/xiph/opus.git
-[submodule "SDL"]
- path = externals/SDL
- url = https://github.com/libsdl-org/SDL.git
[submodule "cpp-httplib"]
path = externals/cpp-httplib
url = https://github.com/yhirose/cpp-httplib.git
-[submodule "ffmpeg"]
- path = externals/ffmpeg/ffmpeg
- url = https://github.com/FFmpeg/FFmpeg.git
[submodule "vcpkg"]
path = externals/vcpkg
url = https://github.com/microsoft/vcpkg.git
@@ -49,9 +43,6 @@
[submodule "externals/dynarmic/externals/unordered_dense"]
path = externals/dynarmic/externals/unordered_dense
url = https://github.com/Lizzie841/unordered_dense.git
-[submodule "externals/dynarmic/externals/xbyak"]
- path = externals/dynarmic/externals/xbyak
- url = https://github.com/Lizzie841/xbyak.git
[submodule "externals/dynarmic/externals/zycore-c"]
path = externals/dynarmic/externals/zycore-c
url = https://github.com/zyantific/zycore-c.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 184993b96a..0c2a880ae0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,9 +33,9 @@ endif()
option(ENABLE_SDL2 "Enable the SDL2 frontend" ON)
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 binaries" ON "ENABLE_SDL2;MSVC" OFF)
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
- CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" OFF "ENABLE_SDL2;NOT MSVC" OFF)
+ CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" OFF "ENABLE_SDL2;NOT MSVC" OFF)
else()
- CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ON "ENABLE_SDL2;NOT MSVC" OFF)
+ CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" ON "ENABLE_SDL2;NOT MSVC" OFF)
endif()
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "NOT ANDROID" OFF)
@@ -332,6 +332,41 @@ if (YUZU_ROOM)
add_definitions(-DYUZU_ROOM)
endif()
+# Build/optimization presets
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ if (ARCHITECTURE_x86_64)
+ set(YUZU_BUILD_PRESET "generic" CACHE STRING "Build preset to use. One of: generic, v3, zen2, zen4, native")
+ if (${YUZU_BUILD_PRESET} STREQUAL "generic")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64 -mtune=generic")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=x86-64 -mtune=generic")
+ elseif (${YUZU_BUILD_PRESET} STREQUAL "v3")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64-v3 -mtune=generic")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=x86-64-v3 -mtune=generic")
+ elseif (${YUZU_BUILD_PRESET} STREQUAL "zen2")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=znver2 -mtune=znver2")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=znver2 -mtune=znver2")
+ elseif (${YUZU_BUILD_PRESET} STREQUAL "zen4")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=znver4 -mtune=znver4")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=znver4 -mtune=znver4")
+ elseif (${YUZU_BUILD_PRESET} STREQUAL "native")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native")
+ endif()
+ elseif(ARCHITECTURE_arm64)
+ set(YUZU_BUILD_PRESET "generic" CACHE STRING "Build preset to use. One of: generic, armv9")
+ if (${YUZU_BUILD_PRESET} STREQUAL "generic")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a -mtune=generic")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a -mtune=generic")
+ elseif (${YUZU_BUILD_PRESET} STREQUAL "armv9")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv9-a -mtune=generic")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv9-a -mtune=generic")
+ endif()
+ endif()
+endif()
+
+# Other presets, e.g. steamdeck
+set(YUZU_SYSTEM_PROFILE "generic" CACHE STRING "CMake and Externals profile to use. One of: generic, steamdeck")
+
# Configure C++ standard
# ===========================
@@ -415,11 +450,12 @@ if(ENABLE_OPENSSL)
find_package(OpenSSL 1.1.1 REQUIRED)
endif()
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT ANDROID)
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR ANDROID)
find_package(gamemode 1.7 MODULE)
endif()
# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the YUZU_find_package
+# TODO(crueter): combine this all with CPM.
if (ENABLE_SDL2)
if (YUZU_USE_BUNDLED_SDL2)
# Detect toolchain and platform
@@ -455,6 +491,8 @@ set(FFmpeg_COMPONENTS
avutil
swscale)
+set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm)
+
add_subdirectory(externals)
if (ENABLE_QT)
diff --git a/README.md b/README.md
index ce60e9e18f..8e8c769070 100644
--- a/README.md
+++ b/README.md
@@ -15,8 +15,7 @@
-
Eden is a open-source Nintendo Switch emulator, forked from the Yuzu emulator — started by former Citron developer Camille LaVey and the Eden team.
-
+Eden is an open-source Nintendo Switch emulator, forked from the Yuzu emulator — started by former Citron developer Camille LaVey and the Eden team.
It is written in C++ with portability in mind, and we actively maintain builds for Windows, Linux and Android.
@@ -57,6 +56,7 @@ You can also contact any of the developers on Discord to learn more about the cu
* **Windows**: [Windows Building Guide](./docs/build/Windows.md)
* **Linux**: [Linux Building Guide](./docs/build/Linux.md)
* **Android**: [Android Building Guide](./docs/build/Android.md)
+* **Solaris**: [Solaris Building Guide](./docs/build/Solaris.md)
* **FreeBSD**: [FreeBSD Building Guide](./docs/build/FreeBSD.md)
* **macOS**: [macOS Building Guide](./docs/build/macOS.md)
@@ -75,7 +75,7 @@ Any donations received will go towards things such as:
* Additional hardware (e.g. GPUs as needed to improve rendering support, other peripherals to add support for, etc.)
* CI Infrastructure
-If you would prefer to support us in a different way, please join our [Discord](https://discord.gg/edenemu), once public, and talk to Camille or any of our other developers.
+If you would prefer to support us in a different way, please join our [Discord](https://discord.gg/edenemu) and talk to Camille or any of our other developers.
## License
diff --git a/docs/Development.md b/docs/Development.md
new file mode 100644
index 0000000000..cba6508ded
--- /dev/null
+++ b/docs/Development.md
@@ -0,0 +1,203 @@
+# Development
+
+* **Windows**: [Windows Building Guide](./docs/build/Windows.md)
+* **Linux**: [Linux Building Guide](./docs/build/Linux.md)
+* **Android**: [Android Building Guide](./docs/build/Android.md)
+* **Solaris**: [Solaris Building Guide](./docs/build/Solaris.md)
+* **FreeBSD**: [FreeBSD Building Guide](./docs/build/FreeBSD.md)
+* **macOS**: [macOS Building Guide](./docs/build/macOS.md)
+
+# Guidelines
+
+## License Headers
+All commits must have proper license header accreditation.
+
+You can easily add all necessary license headers by running:
+```sh
+git fetch origin master:master
+FIX=true COMMIT=true .ci/license-header.sh
+git push
+```
+
+Alternatively, you may omit `COMMIT=true` and do an amend commit:
+```sh
+git fetch origin master:master
+FIX=true .ci/license-header.sh
+git commit --amend -a --no-edit
+```
+
+## Pull Requests
+Pull requests are only to be merged by core developers when properly tested and discussions conclude on Discord or other communication channels. Labels are recommended but not required. However, all PRs MUST be namespaced and optionally typed:
+```
+[cmake] refactor: CPM over submodules
+[desktop] feat: implement firmware install from ZIP
+[hle] stub fw20 functions
+[core] test: raise maximum CPU cores to 6
+```
+
+The level of namespacing is generally left to the committer's choice, but we never recommend going more than two levels *except* in `hle`, in which case you may go as many as four levels depending on the specificity of your changes. Developers are permitted to change namespaces at will. Commits within PRs are not required to be namespaced, but it is highly recommended.
+
+# Building speedup
+
+If you have an HDD, use ramdisk (build in RAM):
+```sh
+sudo mkdir /tmp/ramdisk
+sudo chmod 777 /tmp/ramdisk
+# about 10GB needed
+sudo mount -t tmpfs -o size=10G myramdisk /tmp/ramdisk
+cmake -B /tmp/ramdisk
+cmake --build /tmp/ramdisk -- -j32
+sudo umount /tmp/ramdisk
+```
+
+# How to test JIT
+
+## gdb
+
+Run `./build/bin/eden-cli -c -d -g `
+
+Then hook up an aarch64-gdb (use `yay aarch64-gdb` or `sudo pkg in arch64-gdb` to install)
+Then type `target remote localhost:1234` and type `c` (for continue) - and then if it crashes just do a `bt` (backtrace) and `layout asm`.
+
+### gdb cheatsheet
+
+- `mo `: Monitor commands, `get info`, `get fastmem` and `get mappings` are available.
+- `detach`: Detach from remote (i.e restarting the emulator).
+- `c`: Continue
+- `p `: Print variable, `p/x ` for hexadecimal.
+- `r`: Run
+- `bt`: Print backtrace
+- `info threads`: Print all active threads
+- `thread `: Switch to the given thread (see `info threads`)
+- `layout asm`: Display in assembly mode (TUI)
+- `si`: Step assembly instruction
+- `s` or `step`: Step over LINE OF CODE (not assembly)
+- `display `: Display variable each step.
+- `n`: Next (skips over call frame of a function)
+- `frame `: Switches to the given frame (from `bt`)
+- `br `: Set breakpoint at ``.
+- `delete`: Deletes all breakpoints.
+- `catch throw`: Breakpoint at throw. Can also use `br __cxa_throw`
+
+Expressions can be `variable_names` or `1234` (numbers) or `*var` (dereference of a pointer) or `*(1 + var)` (computed expression).
+
+For more information type `info gdb` and read [the man page](https://man7.org/linux/man-pages/man1/gdb.1.html).
+
+## Bisecting older commits
+
+Since going into the past can be tricky (especially due to the dependencies from the project being lost thru time). This should "restore" the URLs for the respective submodules.
+
+```sh
+#!/bin/sh
+cat > .gitmodules < externals/dynarmic/src/dynarmic/common/x64_disassemble.cpp <
+#include
+#include
+namespace Dynarmic::Common {
+void DumpDisassembledX64(const void* ptr, size_t size) {}
+std::vector DisassembleX64(const void* ptr, size_t size) { return {}; }
+}
+EOF
+```
+
+If having issues with older artifacts, then run `rm -r externals/dynarmic/build externals/dynarmic/externals externals/nx_tzdb/tzdb_to_nx/externals externals/sirit/externals`.
+
+Configuring CMake with `-DSIRIT_USE_SYSTEM_SPIRV_HEADERS=1 -DCMAKE_CXX_FLAGS="-Wno-error" -DCMAKE_C_FLAGS="-Wno-error -Wno-array-parameter -Wno-stringop-overflow"` is also recommended.
diff --git a/docs/Solaris.md b/docs/build/Solaris.md
similarity index 100%
rename from docs/Solaris.md
rename to docs/build/Solaris.md
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index c08c9b7f2d..cd7b80a33c 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -83,7 +83,23 @@ if (YUZU_USE_EXTERNAL_SDL2)
set(SDL_FILE ON)
endif()
- add_subdirectory(SDL)
+ include(CPM)
+ set(CPM_USE_LOCAL_PACKAGES OFF)
+
+ if ("${YUZU_SYSTEM_PROFILE}" STREQUAL "steamdeck")
+ set(SDL_HASH cc016b0046)
+ set(SDL_PIPEWIRE OFF) # build errors out with this on
+ set(SDL_SHA512SUM 34d5ef58da6a4f9efa6689c82f67badcbd741f5a4f562a9c2c30828fa839830fb07681c5dc6a7851520e261c8405a416ac0a2c2513b51984fb3b4fa4dcb3e20b)
+ else()
+ set(SDL_HASH 2e4c12cd2c)
+ set(SDL_SHA512SUM d95af47f469a312876f8ab361074a1e7b8083db19935a102d9c6e5887ace6008e64475a8c54b00164b40cad86492bb1b2366084efdd0b2555e5fea6d9c5da80e)
+ endif()
+
+ CPMAddPackage(
+ NAME SDL2
+ URL "https://github.com/libsdl-org/SDL/archive/${SDL_HASH}.zip"
+ URL_HASH SHA512=${SDL_SHA512SUM}
+ )
endif()
# ENet
@@ -211,7 +227,7 @@ if (ANDROID)
endif()
endif()
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT ANDROID AND NOT TARGET gamemode::headers)
+if ((CMAKE_SYSTEM_NAME STREQUAL "Linux" OR ANDROID) AND NOT TARGET gamemode::headers)
add_library(gamemode INTERFACE)
target_include_directories(gamemode INTERFACE gamemode)
add_library(gamemode::headers ALIAS gamemode)
diff --git a/externals/dynarmic/externals/CMakeLists.txt b/externals/dynarmic/externals/CMakeLists.txt
index f96497db7a..67fb0f4190 100644
--- a/externals/dynarmic/externals/CMakeLists.txt
+++ b/externals/dynarmic/externals/CMakeLists.txt
@@ -64,12 +64,13 @@ if (NOT TARGET ankerl::unordered_dense)
endif()
# xbyak
+# uncomment if in an independent repo.
-if (NOT TARGET xbyak::xbyak)
- if ("x86_64" IN_LIST ARCHITECTURE)
- add_subdirectory(xbyak)
- endif()
-endif()
+# if (NOT TARGET xbyak::xbyak)
+# if ("x86_64" IN_LIST ARCHITECTURE)
+# add_subdirectory(xbyak)
+# endif()
+# endif()
# zydis
diff --git a/externals/dynarmic/src/dynarmic/CMakeLists.txt b/externals/dynarmic/src/dynarmic/CMakeLists.txt
index a43c9eae10..ab2d653152 100644
--- a/externals/dynarmic/src/dynarmic/CMakeLists.txt
+++ b/externals/dynarmic/src/dynarmic/CMakeLists.txt
@@ -5,7 +5,10 @@ add_library(dynarmic
backend/block_range_information.h
backend/exception_handler.h
common/always_false.h
+ common/assert.cpp
+ common/assert.h
common/cast_util.h
+ common/common_types.h
common/crypto/aes.cpp
common/crypto/aes.h
common/crypto/crc32.cpp
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/a32_interface.cpp b/externals/dynarmic/src/dynarmic/backend/arm64/a32_interface.cpp
index 6b38c41093..a22f296e94 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/a32_interface.cpp
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/a32_interface.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2021 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -7,9 +10,9 @@
#include
#include
-#include
+#include "dynarmic/common/assert.h"
#include
-#include
+#include "dynarmic/common/common_types.h"
#include "dynarmic/backend/arm64/a32_address_space.h"
#include "dynarmic/backend/arm64/a32_core.h"
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.cpp b/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.cpp
index e24654c7db..67390a311d 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.cpp
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2016 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -6,7 +9,7 @@
#include "dynarmic/backend/arm64/a32_jitstate.h"
#include
-#include
+#include "dynarmic/common/common_types.h"
namespace Dynarmic::Backend::Arm64 {
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.h b/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.h
index 978bf84ad2..b4fee9a4d0 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.h
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2021 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -7,7 +10,7 @@
#include
-#include
+#include "dynarmic/common/common_types.h"
#include "dynarmic/frontend/A32/a32_location_descriptor.h"
#include "dynarmic/ir/location_descriptor.h"
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/a64_interface.cpp b/externals/dynarmic/src/dynarmic/backend/arm64/a64_interface.cpp
index 7d7716783a..96170f08a8 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/a64_interface.cpp
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/a64_interface.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2022 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -7,9 +10,9 @@
#include
#include
-#include
+#include "dynarmic/common/assert.h"
#include
-#include
+#include "dynarmic/common/common_types.h"
#include "dynarmic/backend/arm64/a64_address_space.h"
#include "dynarmic/backend/arm64/a64_core.h"
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/a64_jitstate.h b/externals/dynarmic/src/dynarmic/backend/arm64/a64_jitstate.h
index 215e6987f3..3dd422b6d4 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/a64_jitstate.h
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/a64_jitstate.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2022 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -7,7 +10,7 @@
#include
-#include
+#include "dynarmic/common/common_types.h"
#include "dynarmic/frontend/A64/a64_location_descriptor.h"
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/abi.cpp b/externals/dynarmic/src/dynarmic/backend/arm64/abi.cpp
index 6d7b96379b..04d8ca2eaf 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/abi.cpp
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/abi.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2022 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -8,7 +11,7 @@
#include
#include
-#include
+#include "dynarmic/common/common_types.h"
#include
namespace Dynarmic::Backend::Arm64 {
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/abi.h b/externals/dynarmic/src/dynarmic/backend/arm64/abi.h
index d3d5de963a..ca7c9187db 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/abi.h
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/abi.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2022 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -10,7 +13,7 @@
#include
#include
-#include
+#include "dynarmic/common/common_types.h"
#include
#include "dynarmic/common/always_false.h"
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/address_space.h b/externals/dynarmic/src/dynarmic/backend/arm64/address_space.h
index 792ecf696b..25b1ab4b04 100644
--- a/externals/dynarmic/src/dynarmic/backend/arm64/address_space.h
+++ b/externals/dynarmic/src/dynarmic/backend/arm64/address_space.h
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
/* This file is part of the dynarmic project.
* Copyright (c) 2022 MerryMage
* SPDX-License-Identifier: 0BSD
@@ -8,7 +11,7 @@
#include