mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-26 00:07:07 +02:00
Compare commits
4 commits
da1dc2f340
...
90764401e1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90764401e1 | ||
|
|
d761ecba8c | ||
|
|
83683440b2 | ||
|
|
9b18d0b111 |
30 changed files with 80 additions and 68 deletions
|
|
@ -7,7 +7,7 @@
|
|||
EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh tools/windows/vcvarsall.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder externals/cmake-modules"
|
||||
|
||||
# license header constants, please change when needed :))))
|
||||
YEAR=2026
|
||||
YEAR=$(date "+%Y")
|
||||
HOLDER="Eden Emulator Project"
|
||||
LICENSE="GPL-3.0-or-later"
|
||||
|
||||
|
|
@ -112,10 +112,10 @@ for file in $FILES; do
|
|||
[ "$excluded" = "true" ] && continue
|
||||
|
||||
case "$file" in
|
||||
*.cmake|*.sh|*CMakeLists.txt)
|
||||
*.cmake|*.sh|*.ps1|*.py|*.rb|*.perl|*.pl|*.nix|*CMakeLists.txt)
|
||||
begin="#"
|
||||
;;
|
||||
*.kt*|*.cpp|*.h|*.qml)
|
||||
*.kt|*.kts|*.cpp|*.h|*.qml|*.c|*.hpp|*.hxx|*.cxx|*.h.in|*.inc)
|
||||
begin="//"
|
||||
;;
|
||||
*)
|
||||
|
|
@ -185,11 +185,12 @@ if [ "$UPDATE" = "true" ]; then
|
|||
|
||||
for file in $SRC_FILES $OTHER_FILES; do
|
||||
case $(basename -- "$file") in
|
||||
*.cmake|*CMakeLists.txt)
|
||||
# Windows Powershell wont use shebangs
|
||||
*.cmake|*.ps1|*CMakeLists.txt)
|
||||
begin="#"
|
||||
shell="false"
|
||||
;;
|
||||
*.sh)
|
||||
*.sh|*.py|*.rb|*.perl|*.pl|*.nix)
|
||||
begin="#"
|
||||
shell=true
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/bash -ex
|
||||
|
||||
# git-archive-all
|
||||
export PATH="$PATH:/home/$USER/.local/bin"
|
||||
|
||||
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
|
||||
GITREV="`git show -s --format='%h'`"
|
||||
REV_NAME="eden-unified-source-${GITDATE}-${GITREV}"
|
||||
|
||||
COMPAT_LIST='dist/compatibility_list/compatibility_list.json'
|
||||
|
||||
mkdir artifacts
|
||||
|
||||
touch "${COMPAT_LIST}"
|
||||
git describe --abbrev=0 --always HEAD > GIT-COMMIT
|
||||
git describe --tags HEAD > GIT-TAG || echo 'unknown' > GIT-TAG
|
||||
git-archive-all --include "${COMPAT_LIST}" --include GIT-COMMIT --include GIT-TAG --force-submodules artifacts/"${REV_NAME}.tar"
|
||||
|
||||
cd artifacts/
|
||||
xz -T0 -9 "${REV_NAME}.tar"
|
||||
sha256sum "${REV_NAME}.tar.xz" > "${REV_NAME}.tar.xz.sha256sum"
|
||||
cd ..
|
||||
|
|
@ -46,7 +46,7 @@ Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configur
|
|||
This is needed for some dependencies that call cc directly (tz):
|
||||
|
||||
```sh
|
||||
echo '#!/bin/sh' >cc
|
||||
echo '#!/bin/sh -e' >cc
|
||||
echo 'gcc $@' >>cc
|
||||
chmod +x cc
|
||||
export PATH="$PATH:$PWD"
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ EmuDeck will automatically create an *Emulators - Emulators* parser for ***Steam
|
|||
4. Paste the following code into the contents of the file, save and close the file.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
#!/bin/sh -e
|
||||
emuName="eden" #parameterize me
|
||||
|
||||
. "$HOME/.config/EmuDeck/backend/functions/all.sh"
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ The main origin repository is always at https://git.eden-emu.dev/eden-emu/eden.
|
|||
|
||||
- https://github.com/eden-emulator/mirror
|
||||
- https://git.crueter.xyz/mirror/eden
|
||||
- https://codeberg.org/eden-emu/eden
|
||||
- https://collective.taymaerz.de/eden/eden
|
||||
|
||||
Other mirrors obviously exist on the internet, but we can't guarantee their reliability and/or availability.
|
||||
|
|
|
|||
3
externals/nx_tzdb/tzdb_template.h.in
vendored
3
externals/nx_tzdb/tzdb_template.h.in
vendored
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/sh
|
||||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# SPDX-FileCopyrightText: 2015 Citra Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
@ -10,20 +12,19 @@ paths_to_check="src/ CMakeLists.txt"
|
|||
|
||||
# If there are whitespace errors, print the offending file names and fail.
|
||||
if ! git diff --cached --check -- $paths_to_check ; then
|
||||
cat<<END
|
||||
|
||||
cat<<EOF
|
||||
Error: This commit would contain trailing spaces or tabs, which is against this repo's policy.
|
||||
Please correct those issues before committing. (Use 'git diff --check' for more details)
|
||||
If you know what you are doing, you can try 'git commit --no-verify' to bypass the check
|
||||
END
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for tabs, since tab-in-indent catches only those at the beginning of a line
|
||||
if git diff --cached -- $paths_to_check | egrep '^\+.* '; then
|
||||
cat<<END
|
||||
cat<<EOF
|
||||
Error: This commit would contain a tab, which is against this repo's policy.
|
||||
If you know what you are doing, you can try 'git commit --no-verify' to bypass the check.
|
||||
END
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
4
shell.nix
Normal file → Executable file
4
shell.nix
Normal file → Executable file
|
|
@ -1,3 +1,7 @@
|
|||
#!/usr/bin/nix-shell
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
let
|
||||
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05";
|
||||
pkgs = import nixpkgs { config = {}; overlays = []; };
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
|||
RENDERER_USE_SPEED_LIMIT("use_speed_limit"),
|
||||
USE_CUSTOM_CPU_TICKS("use_custom_cpu_ticks"),
|
||||
SKIP_CPU_INNER_INVALIDATION("skip_cpu_inner_invalidation"),
|
||||
ANTIFLICKER("antiflicker"),
|
||||
FIX_BLOOM_EFFECTS("fix_bloom_effects"),
|
||||
EMULATE_BGR565("emulate_bgr565"),
|
||||
RESCALE_HACK("rescale_hack"),
|
||||
|
|
|
|||
|
|
@ -750,6 +750,13 @@ abstract class SettingsItem(
|
|||
descriptionId = R.string.skip_cpu_inner_invalidation_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.ANTIFLICKER,
|
||||
titleId = R.string.antiflicker,
|
||||
descriptionId = R.string.antiflicker_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.FIX_BLOOM_EFFECTS,
|
||||
|
|
|
|||
|
|
@ -291,6 +291,7 @@ class SettingsFragmentPresenter(
|
|||
|
||||
add(IntSetting.FAST_GPU_TIME.key)
|
||||
add(BooleanSetting.SKIP_CPU_INNER_INVALIDATION.key)
|
||||
add(BooleanSetting.ANTIFLICKER.key)
|
||||
add(BooleanSetting.FIX_BLOOM_EFFECTS.key)
|
||||
add(BooleanSetting.EMULATE_BGR565.key)
|
||||
add(BooleanSetting.RESCALE_HACK.key)
|
||||
|
|
|
|||
|
|
@ -509,6 +509,8 @@
|
|||
<string name="fast_gpu_time_description">Forces most games to run at their highest native resolution. Use 256 for maximal performance and 512 for maximal graphics fidelity.</string>
|
||||
<string name="skip_cpu_inner_invalidation">Skip CPU Inner Invalidation</string>
|
||||
<string name="skip_cpu_inner_invalidation_description">Skips certain CPU-side cache invalidations during memory updates, reducing CPU usage and improving it\'s performance. This may cause glitches or crashes on some games.</string>
|
||||
<string name="antiflicker">Anti-Flicker</string>
|
||||
<string name="antiflicker_description">Forces GPU fence callbacks to wait for submitted GPU work. Use with Fast GPU mode, to avoid flicker with lower performance impact.</string>
|
||||
<string name="fix_bloom_effects">Fix Bloom Effects</string>
|
||||
<string name="fix_bloom_effects_description">Reduces bloom blur in LA/EOW (Adreno A6XX - A7XX/ Turnip), removes bloom in Burnout. Warning: may cause graphical artifacts in other games.</string>
|
||||
<string name="emulate_bgr565">Emulate BGR565</string>
|
||||
|
|
|
|||
|
|
@ -545,6 +545,13 @@ struct Values {
|
|||
Specialization::Default,
|
||||
true,
|
||||
true};
|
||||
SwitchableSetting<bool> antiflicker{linkage,
|
||||
false,
|
||||
"antiflicker",
|
||||
Category::RendererHacks,
|
||||
Specialization::Default,
|
||||
true,
|
||||
true};
|
||||
SwitchableSetting<bool> async_presentation{linkage,
|
||||
#ifdef ANDROID
|
||||
false,
|
||||
|
|
|
|||
|
|
@ -388,7 +388,7 @@ void ArmNce::SignalInterrupt(Kernel::KThread* thread) {
|
|||
}
|
||||
}
|
||||
|
||||
const std::size_t CACHE_PAGE_SIZE = 4096;
|
||||
[[maybe_unused]] const std::size_t CACHE_PAGE_SIZE = 4096;
|
||||
|
||||
void ArmNce::ClearInstructionCache() {
|
||||
#ifdef __aarch64__
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ namespace Core {
|
|||
|
||||
namespace {
|
||||
// Prefetch tuning parameters
|
||||
constexpr size_t CACHE_LINE_SIZE = 64;
|
||||
constexpr size_t PREFETCH_STRIDE = 128; // 2 cache lines ahead
|
||||
constexpr size_t SIMD_PREFETCH_THRESHOLD = 32; // Bytes
|
||||
[[maybe_unused]] constexpr size_t CACHE_LINE_SIZE = 64;
|
||||
[[maybe_unused]] constexpr size_t PREFETCH_STRIDE = 128; // 2 cache lines ahead
|
||||
[[maybe_unused]] constexpr size_t SIMD_PREFETCH_THRESHOLD = 32; // Bytes
|
||||
} // namespace
|
||||
|
||||
template <u32 BitSize>
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ static const constexpr std::array blockedDomains = {
|
|||
"microsoft.com", //minecraft dungeons + other games
|
||||
"mojang.com",
|
||||
"xboxlive.com",
|
||||
"api.epicgames.dev", // marvel cosmic invasion +?
|
||||
"minecraftservices.com"
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -193,6 +193,9 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QObject* parent) {
|
|||
INSERT(Settings, skip_cpu_inner_invalidation, tr("Skip CPU Inner Invalidation"),
|
||||
tr("Skips certain cache invalidations during memory updates, reducing CPU usage and "
|
||||
"improving latency. This may cause soft-crashes."));
|
||||
INSERT(Settings, antiflicker, tr("Anti-Flicker"),
|
||||
tr("Forces GPU fence callbacks to wait for submitted GPU work.\n"
|
||||
"Use with Fast GPU mode, to avoid flicker with lower performance impact."));
|
||||
INSERT(Settings, vsync_mode, tr("VSync Mode:"),
|
||||
tr("FIFO (VSync) does not drop frames or exhibit tearing but is limited by the screen "
|
||||
"refresh rate.\nFIFO Relaxed allows tearing as it recovers from a slow down.\n"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
|
|
@ -76,9 +76,9 @@ public:
|
|||
TryReleasePendingFences<false>();
|
||||
}
|
||||
const bool should_flush = ShouldFlush();
|
||||
const bool delay_fence = Settings::IsGPULevelHigh() || (Settings::IsGPULevelMedium() && should_flush);
|
||||
const bool delay_fence = Settings::values.antiflicker.GetValue() || !Settings::IsGPULevelLow();
|
||||
CommitAsyncFlushes();
|
||||
TFence new_fence = CreateFence(!should_flush);
|
||||
TFence new_fence = CreateFence(!should_flush && !delay_fence);
|
||||
if constexpr (can_async_check) {
|
||||
guard.lock();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Tools
|
||||
|
||||
Tools for Eden and other subprojects.
|
||||
Tools for Eden and other subprojects. When adding new scripts please use `#!/bin/sh -e` or `#!/usr/bin/env <interpreter>` (for `.py`, `.rb`, or `.perl`). Keep scripts POSIX compliant (i.e not require hard `bash` to run, just plain old `sh`).
|
||||
|
||||
## Third-Party
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#! /bin/sh
|
||||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/perl
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
#!/usr/bin/env perl
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# Basic script to run dtrace sampling over the program (requires Flamegraph)
|
||||
# Usage is either running as: ./dtrace-tool.sh pid (then input the pid of the process)
|
||||
|
|
|
|||
4
tools/lanczos-gen.pl
Normal file → Executable file
4
tools/lanczos-gen.pl
Normal file → Executable file
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/perl
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
#!/usr/bin/env perl
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
use strict;
|
||||
use warnings;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/bin/sh
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# This script basically allows you to "dirtily" use llvmpipe in any configuration
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
which optipng || exit
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
ANDROID=src/android/app/src/main
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/python3
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
#!/usr/bin/env python3
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
|
@ -212,7 +212,7 @@ def emit_size_check():
|
|||
if type != "void":
|
||||
lines.append(f"static_assert(sizeof({type}) == {size});")
|
||||
|
||||
return "\n".join(lines)
|
||||
return f"\n{lines}"
|
||||
|
||||
|
||||
# Replaces a type with an arch-specific one, if it exists.
|
||||
|
|
@ -423,7 +423,7 @@ def emit_lines(lines, indent=' '):
|
|||
output_lines.append(line)
|
||||
first = False
|
||||
|
||||
return "\n".join(output_lines)
|
||||
return f"\n{output_lines}"
|
||||
|
||||
|
||||
# Emit a C++ function to wrap a guest SVC.
|
||||
|
|
@ -601,7 +601,7 @@ def emit_call(bitness, names, suffix):
|
|||
lines.append(f"{indent}}}")
|
||||
lines.append("}")
|
||||
|
||||
return "\n".join(lines)
|
||||
return f"\n{lines}"
|
||||
|
||||
|
||||
def build_fn_declaration(return_type, name, arguments):
|
||||
|
|
@ -623,7 +623,7 @@ def build_enum_declarations():
|
|||
lines.append(f"{indent}{name} = {hex(imm)},")
|
||||
|
||||
lines.append("};")
|
||||
return "\n".join(lines)
|
||||
return f"\n{lines}"
|
||||
|
||||
|
||||
def main():
|
||||
|
|
@ -665,11 +665,11 @@ def main():
|
|||
with open("src/core/hle/kernel/svc.h", "w") as f:
|
||||
f.write(COPYRIGHT)
|
||||
f.write(PROLOGUE_H)
|
||||
f.write("\n".join(svc_fw_declarations))
|
||||
f.write(f"\n{svc_fw_declarations}")
|
||||
f.write("\n\n")
|
||||
f.write("\n".join(arch_fw_declarations[BIT_32]))
|
||||
f.write(f"\n{arch_fw_declarations[BIT_32]}")
|
||||
f.write("\n\n")
|
||||
f.write("\n".join(arch_fw_declarations[BIT_64]))
|
||||
f.write(f"\n{arch_fw_declarations[BIT_64]}")
|
||||
f.write("\n\n")
|
||||
f.write(enum_decls)
|
||||
f.write(EPILOGUE_H)
|
||||
|
|
@ -679,7 +679,7 @@ def main():
|
|||
f.write(PROLOGUE_CPP)
|
||||
f.write(emit_size_check())
|
||||
f.write("\n\n")
|
||||
f.write("\n\n".join(wrapper_fns))
|
||||
f.write(f"\n\n{wrapper_fns}")
|
||||
f.write("\n\n")
|
||||
f.write(call_32)
|
||||
f.write("\n\n")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
SOURCES=$(find src/yuzu src/qt_common -type f \( -name "*.ui" -o -name "*.cpp" -o -name "*.h" -o -name "*.plist" \))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
command -v tx-cli && COMMAND=tx-cli
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
ANDROID=src/android/app/src/main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/sh
|
||||
#!/bin/sh -e
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue