Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ MainWindowState = AAAA/wAAAAD9AAAAAAAAAoAAAAKnAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAg


[Folders]
Bios = /storage/roms/bios/ps2
Bios = /storage/roms/bios/armsx2
Snapshots = snaps
Savestates = /storage/roms/savestates/ps2
MemoryCards = /storage/roms/ps2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
# Copyright (C) 2025-present ROCKNIX (https://github.com/ROCKNIX)

PKG_NAME="armsx2-sa"
PKG_VERSION="2.6.6.5"
PKG_VERSION="2.6.6.7"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/ARMSX2/ARMSX2"
PKG_URL="${PKG_SITE}/archive/refs/tags/${PKG_VERSION}.tar.gz"
PKG_LONGDESC="ARMSX2 is a native ARM64 PlayStation 2 (PS2) emulator, a fork of PCSX2 that ports the EE/IOP/VU JIT recompilers to ARM64."
PKG_DEPENDS_TARGET="toolchain llvm:host SDL3 libpng zlib libjpeg-turbo zstd lz4 libwebp freetype plutosvg curl libpcap ffmpeg libX11 libXext qt6 ecm shaderc"
PKG_DEPENDS_TARGET="toolchain llvm:host SDL3 libpng zlib libjpeg-turbo zstd lz4 libwebp freetype plutosvg curl libpcap ffmpeg libX11 libXext qt6 ecm shaderc lsfg-vk"
PKG_TOOLCHAIN="manual"
PKG_BUILD_FLAGS="speed"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ fi
if [ ! -d "/storage/roms/bios/armsx2" ]; then
mkdir -p "/storage/roms/bios/armsx2"
fi
sed -i '/^Bios =/c\Bios = /storage/roms/bios/armsx2' /storage/.config/ARMSX2/inis/PCSX2.ini

#Create PS2 savestates folder
if [ ! -d "/storage/roms/savestates/ps2" ]; then
Expand All @@ -44,6 +45,14 @@ GRENDERER=$(get_setting graphics_backend "${PLATFORM}" "${GAME}")
IRES=$(get_setting internal_resolution "${PLATFORM}" "${GAME}")
VSYNC=$(get_setting vsync "${PLATFORM}" "${GAME}")
ENABLE_WIDESCREEN_PATCHES=$(get_setting enable_widescreen_patches "${PLATFORM}" "${GAME}")
LSFG_ENABLE=$(get_setting lsfg_enable "${PLATFORM}" "${GAME}")
LSFG_ENABLE=${LSFG_ENABLE:-0}
LSFG_MULTIPLIER=$(get_setting lsfg_multiplier "${PLATFORM}" "${GAME}")
LSFG_MULTIPLIER=${LSFG_MULTIPLIER:-2}
LSFG_FLOW_SCALE=$(get_setting lsfg_flow_scale "${PLATFORM}" "${GAME}")
LSFG_FLOW_SCALE=${LSFG_FLOW_SCALE:-0.30}
LSFG_PERFORMANCE_MODE=$(get_setting lsfg_performance_mode "${PLATFORM}" "${GAME}")
LSFG_PERFORMANCE_MODE=${LSFG_PERFORMANCE_MODE:-1}

#Set the cores to use
CORES=$(get_setting "cores" "${PLATFORM}" "${GAME}")
Expand Down Expand Up @@ -209,6 +218,35 @@ fi
#Graphic driver fixes
@GRAPHICS@

#Lossless Scaling frame generation
LSFG_DLL_PATH="/storage/roms/bios/armsx2/Lossless.dll"
if [ ! -f "${LSFG_DLL_PATH}" ] && [ -f "/storage/games-internal/roms/steam/steamapps/common/Lossless Scaling/Lossless.dll" ]; then
LSFG_DLL_PATH="/storage/games-internal/roms/steam/steamapps/common/Lossless Scaling/Lossless.dll"
elif [ ! -f "${LSFG_DLL_PATH}" ] && [ -f "/storage/.local/share/Steam/steamapps/common/Lossless Scaling/Lossless.dll" ]; then
LSFG_DLL_PATH="/storage/.local/share/Steam/steamapps/common/Lossless Scaling/Lossless.dll"
elif [ ! -f "${LSFG_DLL_PATH}" ] && [ -f "/storage/roms/steam/steamapps/common/Lossless Scaling/Lossless.dll" ]; then
LSFG_DLL_PATH="/storage/roms/steam/steamapps/common/Lossless Scaling/Lossless.dll"
fi

if [ "${LSFG_ENABLE}" = "1" ] && [ -f "${LSFG_DLL_PATH}" ]; then
unset DISABLE_LSFGVK
export LSFGVK_ENV=1
export LSFGVK_DLL_PATH="${LSFG_DLL_PATH}"
export LSFGVK_MULTIPLIER="${LSFG_MULTIPLIER}"
export LSFGVK_FLOW_SCALE="${LSFG_FLOW_SCALE}"
export LSFGVK_PERFORMANCE_MODE="${LSFG_PERFORMANCE_MODE}"
export LSFGVK_PACING=none
sed -i '/^Renderer =/c\Renderer = 14' /storage/.config/ARMSX2/inis/PCSX2.ini
sed -i '/^VsyncEnable =/c\VsyncEnable = true' /storage/.config/ARMSX2/inis/PCSX2.ini
else
export DISABLE_LSFGVK=1
unset LSFGVK_ENV LSFGVK_DLL_PATH LSFGVK_MULTIPLIER LSFGVK_FLOW_SCALE LSFGVK_PERFORMANCE_MODE LSFGVK_PACING
sed -i '/^VsyncEnable =/c\VsyncEnable = false' /storage/.config/ARMSX2/inis/PCSX2.ini
if [ "${LSFG_ENABLE}" = "1" ]; then
echo "LSFG disabled: Lossless.dll not found in the ARMSX2 BIOS or Steam directories."
fi
fi

#Set QT enviornment to wayland
export QT_QPA_PLATFORM=wayland

Expand Down
15 changes: 5 additions & 10 deletions projects/ROCKNIX/packages/emulators/standalone/eden-sa/package.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)

PKG_NAME="eden-sa"
PKG_VERSION="0d9d8064d786b2a44045a395e3a64e980ece9dcd" # 260725
PKG_VERSION="6589019e6b3e4ab68a748d88b97ace3091a6923a" # 260821
PKG_LICENSE="GPLv2"
PKG_DEPENDS_TARGET="toolchain llvm:host SDL3 boost libevdev libdrm ffmpeg zlib zstd alsa-lib qt6 libfmt"
PKG_DEPENDS_TARGET="toolchain llvm:host SDL3 boost libevdev libdrm ffmpeg zlib zstd opus alsa-lib qt6 libfmt"
PKG_LONGDESC="Eden is a high-performance and easy-to-use emulator, tailored for enthusiasts and developers alike."
PKG_SITE="https://github.com/UzuCore/eden"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
Expand All @@ -26,11 +26,6 @@ EDEN_LLVM_BIN="${TOOLCHAIN}/bin"

PGO_URL="https://github.com/Eden-CI/PGO/releases/download/v020525/eden.profdata"

post_unpack_target() {
find "${PKG_BUILD}" \( -name "CMakeLists.txt" -o -name "*.cmake" \) \
-exec sed -i 's/\(-\)\?Werror/-Wno-error/g' {} +
}

make_target() {
local PGO_FILE="${PKG_BUILD}/eden.profdata"

Expand Down Expand Up @@ -128,13 +123,13 @@ make_target() {
-DYUZU_CMD=OFF
-DVulkanHeaders_FORCE_BUNDLED=ON
-DENABLE_LTO=OFF
-DENABLE_WERROR=OFF
-DENABLE_LSFG=ON
-DOpus_FORCE_SYSTEM=ON
)

cmake "${tgt_opts[@]}" || return 1

find . \( -name "*.ninja" -o -name "flags.make" \) \
-exec sed -i 's/-Werror/-Wno-error/g' {} + 2>/dev/null

ninja -j$(nproc) || ninja
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cbcdaccd0..121372d0c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,8 +81,8 @@
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)
+# Lossless Scaling frame generation. The Vulkan implementation is platform-neutral.
+option(ENABLE_LSFG "Enable Lossless Scaling frame generation" OFF)

# non-linux bundled qt are static
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a2abc7d1b..ffb0e655f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -169,8 +169,8 @@ else()
$<$<COMPILE_LANGUAGE:C,CXX>:-Wmissing-declarations>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wshadow>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wunused>
- # Some compilers could particularly misbehave :)
- $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-error-all>)
+ # Keep warnings enabled without promoting them to errors.
+ $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-error>)
endif()
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-attributes>
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@

. /etc/profile

CONF_FILE="/storage/.config/eden/qt-config.ini"

#Check if eden exists in .config
if [ ! -d "/storage/.config/eden" ]; then
mkdir -p "/storage/.config/eden"
cp -r "/usr/config/eden" "/storage/.config/"
fi

#Check if qt-config.ini exists in .config/eden
if [ ! -f "/storage/.config/eden/qt-config.ini" ]; then
cp -r "/usr/config/eden/qt-config.ini" "/storage/.config/eden/qt-config.ini"
if [ ! -f "${CONF_FILE}" ]; then
cp -r "/usr/config/eden/qt-config.ini" "${CONF_FILE}"
fi

#Move Nand / Saves to switch roms folder
Expand All @@ -35,6 +37,92 @@ ln -sf /storage/roms/bios/eden/keys /storage/.config/eden/keys
rm -rf /storage/.local/share/eden
ln -sf /storage/.config/eden /storage/.local/share/eden

# EmulationStation features
GAME=$(echo "${1}" | sed "s#^/.*/##")
PLATFORM=$(echo "${2}" | sed "s#^/.*/##")
LSFG_ENABLE=$(get_setting lsfg_enable "${PLATFORM}" "${GAME}")
LSFG_ENABLE=${LSFG_ENABLE:-0}
LSFG_MULTIPLIER=$(get_setting lsfg_multiplier "${PLATFORM}" "${GAME}")
LSFG_MULTIPLIER=${LSFG_MULTIPLIER:-2}
LSFG_FLOW_SCALE=$(get_setting lsfg_flow_scale "${PLATFORM}" "${GAME}")
LSFG_FLOW_SCALE=${LSFG_FLOW_SCALE:-auto}

# Eden's LSFG implementation reads shaders from a user-owned Lossless.dll.
mkdir -p /storage/.config/eden/lossless /storage/roms/bios/eden
LSFG_TARGET="/storage/.config/eden/lossless/Lossless.dll"
LSFG_DLL_PATH="${LSFG_TARGET}"

if [ ! -f "${LSFG_DLL_PATH}" ]; then
for candidate in \
"/storage/roms/bios/eden/Lossless.dll" \
"/storage/games-internal/roms/steam/steamapps/common/Lossless Scaling/Lossless.dll" \
"/storage/.local/share/Steam/steamapps/common/Lossless Scaling/Lossless.dll" \
"/storage/roms/steam/steamapps/common/Lossless Scaling/Lossless.dll"; do
if [ -f "${candidate}" ]; then
ln -sf "${candidate}" "${LSFG_TARGET}"
LSFG_DLL_PATH="${LSFG_TARGET}"
break
fi
done
fi

# Update a QSettings value even when an older config does not contain the new key.
set_eden_renderer_setting() {
local key="${1}"
local value="${2}"
local tmp="${CONF_FILE}.tmp.$$"

awk -v key="${key}" -v value="${value}" '
function add_missing() {
if (!seen_default) print key "\\default=false"
if (!seen_value) print key "=" value
}
/^\[/ {
if (in_renderer) add_missing()
in_renderer = ($0 == "[Renderer]")
}
in_renderer && index($0, key "\\default=") == 1 {
print key "\\default=false"
seen_default = 1
next
}
in_renderer && index($0, key "=") == 1 {
print key "=" value
seen_value = 1
next
}
{ print }
END {
if (in_renderer) add_missing()
}
' "${CONF_FILE}" > "${tmp}" && mv "${tmp}" "${CONF_FILE}"
}

set_eden_renderer_setting frame_gen_multiplier "${LSFG_MULTIPLIER}"
set_eden_renderer_setting frame_gen_target_rate 0
set_eden_renderer_setting frame_gen_queue_target 1
set_eden_renderer_setting frame_gen_fp16 true

if [ "${LSFG_FLOW_SCALE}" = "auto" ]; then
set_eden_renderer_setting frame_gen_flow_scale_auto true
else
set_eden_renderer_setting frame_gen_flow_scale_auto false
set_eden_renderer_setting frame_gen_flow_scale "${LSFG_FLOW_SCALE}"
fi

if [ "${LSFG_ENABLE}" = "1" ] && [ -f "${LSFG_DLL_PATH}" ]; then
set_eden_renderer_setting frame_gen true
else
set_eden_renderer_setting frame_gen false
if [ "${LSFG_ENABLE}" = "1" ]; then
echo "Eden LSFG disabled: Lossless.dll not found in the Eden BIOS or Steam directories."
fi
fi

# Eden uses its built-in frame generator; never stack the external LSFG-VK layer on top.
export DISABLE_LSFGVK=1
unset LSFGVK_ENV LSFGVK_DLL_PATH LSFGVK_MULTIPLIER LSFGVK_FLOW_SCALE LSFGVK_PERFORMANCE_MODE LSFGVK_PACING

#Set QT Platform to Wayland-EGL
export QT_QPA_PLATFORM=xcb

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1134,6 +1134,23 @@
<choice name="xbox" value="xbox"/>
<choice name="nintendo" value="nintendo"/>
</feature>
<feature name="lsfg enable">
<choice name="off" value="0"/>
<choice name="on" value="1"/>
</feature>
<feature name="lsfg multiplier">
<choice name="2x" value="2"/>
<choice name="3x" value="3"/>
<choice name="4x" value="4"/>
</feature>
<feature name="lsfg flow scale">
<choice name="auto" value="auto"/>
<choice name="1.00" value="100"/>
<choice name="0.75" value="75"/>
<choice name="0.50" value="50"/>
<choice name="0.30" value="30"/>
<choice name="0.25" value="25"/>
</feature>
</features>
</core>
</cores>
Expand Down Expand Up @@ -1316,6 +1333,26 @@
<choice name="yes" value="true"/>
<choice name="no" value="false"/>
</feature>
<feature name="lsfg enable">
<choice name="off" value="0"/>
<choice name="on" value="1"/>
</feature>
<feature name="lsfg multiplier">
<choice name="2x" value="2"/>
<choice name="3x" value="3"/>
<choice name="4x" value="4"/>
</feature>
<feature name="lsfg flow scale">
<choice name="1.00" value="1.00"/>
<choice name="0.75" value="0.75"/>
<choice name="0.50" value="0.50"/>
<choice name="0.30" value="0.30"/>
<choice name="0.25" value="0.25"/>
</feature>
<feature name="lsfg performance mode">
<choice name="on" value="1"/>
<choice name="off" value="0"/>
</feature>
</features>
</core>
</cores>
Expand Down
Loading