mirror of https://git.suyu.dev/suyu/suyu
Merge remote-tracking branch 'upstream/dev' into dev
fixing merge issues & rebasing upstream onto dev
This commit is contained in:
commit
d95ca08f68
|
@ -17,8 +17,8 @@ cmake .. \
|
||||||
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
|
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||||
-DDISPLAY_VERSION=$1 \
|
-DDISPLAY_VERSION=$1 \
|
||||||
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
|
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF \
|
||||||
-DENABLE_QT_TRANSLATION=ON \
|
-DENABLE_QT_TRANSLATION=OFF \
|
||||||
-DUSE_DISCORD_PRESENCE=ON \
|
-DUSE_DISCORD_PRESENCE=ON \
|
||||||
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
|
-DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
|
||||||
-DYUZU_USE_BUNDLED_FFMPEG=ON \
|
-DYUZU_USE_BUNDLED_FFMPEG=ON \
|
||||||
|
@ -49,9 +49,10 @@ DESTDIR="$PWD/AppDir" ninja install
|
||||||
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
|
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
|
||||||
|
|
||||||
# Download tools needed to build an AppImage
|
# Download tools needed to build an AppImage
|
||||||
wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/appimage/deploy-linux.sh
|
wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/deploy-linux.sh
|
||||||
wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh
|
wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/exec-x86_64.so
|
||||||
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
|
wget -nc https://gitlab.com/suyu-emu/AppImageKit-checkrt/-/raw/old/AppRun.sh
|
||||||
|
|
||||||
# Set executable bit
|
# Set executable bit
|
||||||
chmod 755 \
|
chmod 755 \
|
||||||
deploy-linux.sh \
|
deploy-linux.sh \
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Modified by JuanCStar on 2024/03/06
|
|
||||||
|
|
||||||
. .ci/scripts/common/pre-upload.sh
|
. .ci/scripts/common/pre-upload.sh
|
||||||
|
|
||||||
APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
|
APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
|
||||||
|
@ -29,7 +27,7 @@ fi
|
||||||
# Build an AppImage
|
# Build an AppImage
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage
|
wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/appimagetool-x86_64.AppImage
|
||||||
chmod 755 appimagetool-x86_64.AppImage
|
chmod 755 appimagetool-x86_64.AppImage
|
||||||
|
|
||||||
# if FUSE is not available, then fallback to extract and run
|
# if FUSE is not available, then fallback to extract and run
|
||||||
|
|
|
@ -20,19 +20,23 @@ format:
|
||||||
script:
|
script:
|
||||||
- bash -ex ./.ci/scripts/format/script.sh
|
- bash -ex ./.ci/scripts/format/script.sh
|
||||||
|
|
||||||
build:
|
|
||||||
|
build-linux:
|
||||||
stage: build
|
stage: build
|
||||||
image: ubuntu:latest
|
image: debian:trixie # Maybe replace with image with more required dependencies
|
||||||
|
resource_group: linux-ci
|
||||||
|
variables:
|
||||||
|
RELEASE_NAME: mainline
|
||||||
|
before_script:
|
||||||
|
- apt-get update --yes
|
||||||
|
- apt-get install --yes wget ccache cmake gcc g++ nasm git patchelf xz-utils ninja-build autoconf glslang-tools pkg-config catch2 libtool nlohmann-json3-dev qtbase5-dev qtbase5-private-dev qtmultimedia5-dev libqt5gui5 libva-dev libavcodec-dev libavfilter-dev libboost-dev libboost-context-dev libfmt-dev zlib1g-dev libzstd-dev libcurl4-openssl-dev liblz4-dev llvm-17-dev libedit-dev libssl-dev mesa-common-dev libzydis-dev libusb-dev libpulse-dev
|
||||||
script:
|
script:
|
||||||
- apt-get update -y
|
- git submodule update --init --depth 1 --recursive
|
||||||
- DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-17-jdk ccache autoconf cmake git glslang-tools libasound2 libboost-context-dev libglu1-mesa-dev libhidapi-dev libpulse-dev libtool libudev-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxext-dev libxkbcommon-x11-0 mesa-common-dev nasm ninja-build qtbase5-dev qtbase5-private-dev qtwebengine5-dev qtmultimedia5-dev libmbedtls-dev catch2 libfmt-dev liblz4-dev nlohmann-json3-dev libzstd-dev libssl-dev libavfilter-dev libavcodec-dev libswscale-dev g++-11 gcc-11
|
- bash .ci/scripts/linux/docker.sh
|
||||||
- /usr/sbin/update-ccache-symlinks
|
- bash .ci/scripts/linux/upload.sh
|
||||||
- ls -la /usr/lib/ccache/
|
|
||||||
- bash -c "export PR_NUMBER=$PR_NUMBER; ./.ci/scripts/linux/docker.sh"
|
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "linux"
|
|
||||||
paths:
|
paths:
|
||||||
- artifacts/
|
- artifacts/*
|
||||||
|
|
||||||
build-mac:
|
build-mac:
|
||||||
stage: build-mac
|
stage: build-mac
|
||||||
|
@ -81,3 +85,4 @@ android:
|
||||||
paths:
|
paths:
|
||||||
- artifacts/
|
- artifacts/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ License: GPL-2.0-or-later
|
||||||
|
|
||||||
Files: dist/qt_themes/default/icons/256x256/yuzu.png
|
Files: dist/qt_themes/default/icons/256x256/yuzu.png
|
||||||
dist/yuzu.bmp
|
dist/yuzu.bmp
|
||||||
dist/yuzu.icns
|
dist/suyu.icns
|
||||||
dist/suyu.ico
|
dist/suyu.ico
|
||||||
dist/suyu.svg
|
dist/suyu.svg
|
||||||
Copyright: suyu Emulator Project
|
Copyright: suyu Emulator Project
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# Modified by JuanCStar on 2024/03/06
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.22)
|
cmake_minimum_required(VERSION 3.22)
|
||||||
|
|
||||||
project(yuzu)
|
project(yuzu)
|
||||||
|
@ -40,7 +38,7 @@ option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON)
|
||||||
|
|
||||||
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON)
|
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON)
|
||||||
|
|
||||||
option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
|
option(SUYU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
|
||||||
|
|
||||||
option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF)
|
option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF)
|
||||||
|
|
||||||
|
@ -66,7 +64,7 @@ option(YUZU_ENABLE_LTO "Enable link-time optimization" OFF)
|
||||||
|
|
||||||
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" OFF)
|
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" OFF)
|
||||||
|
|
||||||
option(YUZU_ENABLE_PORTABLE "Allow yuzu to enable portable mode if a user folder is found in the CWD" ON)
|
option(SUYU_ENABLE_PORTABLE "Allow suyu to enable portable mode if a user folder is found in the CWD" ON)
|
||||||
|
|
||||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
|
CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
|
||||||
|
|
||||||
|
@ -264,7 +262,7 @@ endif()
|
||||||
message(STATUS "Target architecture: ${ARCHITECTURE}")
|
message(STATUS "Target architecture: ${ARCHITECTURE}")
|
||||||
|
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
add_definitions(-DYUZU_UNIX=1)
|
add_definitions(-DSUYU_UNIX=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_arm64 AND (ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
|
if (ARCHITECTURE_arm64 AND (ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux"))
|
||||||
|
@ -373,7 +371,7 @@ function(set_yuzu_qt_components)
|
||||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 DBus)
|
list(APPEND YUZU_QT_COMPONENTS2 DBus)
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_QT_MULTIMEDIA)
|
if (SUYU_USE_QT_MULTIMEDIA)
|
||||||
list(APPEND YUZU_QT_COMPONENTS2 Multimedia)
|
list(APPEND YUZU_QT_COMPONENTS2 Multimedia)
|
||||||
endif()
|
endif()
|
||||||
if (YUZU_USE_QT_WEB_ENGINE)
|
if (YUZU_USE_QT_WEB_ENGINE)
|
||||||
|
@ -411,7 +409,7 @@ if(ENABLE_QT)
|
||||||
set(QT_DEFAULT_MAJOR_VERSION 5)
|
set(QT_DEFAULT_MAJOR_VERSION 5)
|
||||||
set(QT_MAJOR_VERSION 5)
|
set(QT_MAJOR_VERSION 5)
|
||||||
|
|
||||||
set(YUZU_USE_QT_MULTIMEDIA ON)
|
set(SUYU_USE_QT_MULTIMEDIA ON)
|
||||||
# Check for system Qt on Linux, fallback to bundled Qt
|
# Check for system Qt on Linux, fallback to bundled Qt
|
||||||
if (UNIX AND NOT APPLE)
|
if (UNIX AND NOT APPLE)
|
||||||
if (NOT YUZU_USE_BUNDLED_QT)
|
if (NOT YUZU_USE_BUNDLED_QT)
|
||||||
|
@ -518,7 +516,7 @@ if(ENABLE_QT)
|
||||||
|
|
||||||
set(YUZU_QT_NO_CMAKE_SYSTEM_PATH "NO_CMAKE_SYSTEM_PATH")
|
set(YUZU_QT_NO_CMAKE_SYSTEM_PATH "NO_CMAKE_SYSTEM_PATH")
|
||||||
# Binary package for Qt5 has Qt Multimedia
|
# Binary package for Qt5 has Qt Multimedia
|
||||||
set(YUZU_USE_QT_MULTIMEDIA ON CACHE BOOL "Use Qt Multimedia" FORCE)
|
set(SUYU_USE_QT_MULTIMEDIA ON CACHE BOOL "Use Qt Multimedia" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_yuzu_qt_components()
|
set_yuzu_qt_components()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2016 Citra Emulator Project
|
# SPDX-FileCopyrightText: 2016 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
function(copy_yuzu_Qt5_deps target_dir)
|
function(copy_yuzu_Qt5_deps target_dir)
|
||||||
|
@ -33,7 +33,7 @@ function(copy_yuzu_Qt5_deps target_dir)
|
||||||
Qt5Widgets$<$<CONFIG:Debug>:d>.*
|
Qt5Widgets$<$<CONFIG:Debug>:d>.*
|
||||||
Qt5Network$<$<CONFIG:Debug>:d>.*
|
Qt5Network$<$<CONFIG:Debug>:d>.*
|
||||||
)
|
)
|
||||||
if (YUZU_USE_QT_MULTIMEDIA)
|
if (SUYU_USE_QT_MULTIMEDIA)
|
||||||
windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
|
windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
|
||||||
Qt5Multimedia$<$<CONFIG:Debug>:d>.*
|
Qt5Multimedia$<$<CONFIG:Debug>:d>.*
|
||||||
)
|
)
|
||||||
|
|
41
README.md
41
README.md
|
@ -3,16 +3,16 @@ SPDX-FileCopyrightText: 2024 suyu emulator project
|
||||||
SPDX-License-Identifier: GPL v3
|
SPDX-License-Identifier: GPL v3
|
||||||
-->
|
-->
|
||||||
|
|
||||||
**Note**: We do not support or condone piracy in any form. In order to use Suyu, you'll need keys from your real Switch system, and games which you have legally obtained and paid for. We do not intend to make money or profit from this project.
|
**Note**: We do not support or condone piracy in any form. In order to use suyu, you'll need keys from your real Switch system, and games which you have legally obtained and paid for. We do not intend to make money or profit from this project.
|
||||||
|
|
||||||
We are in great need of developers. Please join our Discord server below if you can help out with the project.
|
We're in need of developers. Please join our Discord server below if you want to contribute!
|
||||||
This repo is based on Yuzu EA 4176. Please contribute if you can!
|
This repo is based on Yuzu EA 4176.
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<h1 align="center">
|
<h1 align="center">
|
||||||
<br>
|
<br>
|
||||||
<a href="https://gitlab.com/suyu-emu/suyu"><img src="dist/readme/suyu__Logo-Pill.svg" alt="suyu" height="128"></a>
|
<a href="https://suyu.dev"><img src="dist/readme/suyu__Logo-Pill.svg" alt="suyu" height="128"></a>
|
||||||
<br>
|
<br>
|
||||||
<b>suyu</b>
|
<b>suyu</b>
|
||||||
<br>
|
<br>
|
||||||
|
@ -24,42 +24,37 @@ It is written in C++ with portability in mind, and we actively maintain builds f
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#compatibility">Compatibility</a> |
|
<a href="https://discord.gg/2gQRBp44KT">Discord</a> |
|
||||||
|
<a href="#status">Status</a> |
|
||||||
<a href="#development">Development</a> |
|
<a href="#development">Development</a> |
|
||||||
<a href="#building">Building</a> |
|
|
||||||
<a href="https://gitlab.com/suyu-emu/suyu/-/pipelines">Pipelines</a>
|
|
||||||
<a href="#downloads">Downloads</a> |
|
<a href="#downloads">Downloads</a> |
|
||||||
|
<a href="#building">Building</a> |
|
||||||
<a href="#support">Support</a> |
|
<a href="#support">Support</a> |
|
||||||
<a href="#license">License</a>
|
<a href="#license">License</a> |
|
||||||
|
<a href="https://gitlab.com/suyu-emu/suyu/-/pipelines">Pipelines</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
We are trying to get the builds working. We are in need of developers. Join our Discord to contribute.
|
Although we're able to make builds, we don't have a version ready for distribution yet. But we can always use more help! You can make a merge request if you'd like to see something changed, or you can [chat with other developers to find out what needs work](https://discord.gg/2gQRBp44KT).
|
||||||
|
|
||||||
**Note**: This README is a fork of the original project's README, most links are broken!
|
**Note**: We try to update this README whenever we can, but some links might be broken, and some information may be outdated or irrelevant.
|
||||||
|
|
||||||
## Compatibility
|
|
||||||
|
|
||||||
The emulator is capable of running most commercial games at full speed, provided you meet the [necessary hardware requirements](https://suyu-emu.org/help/quickstart/#hardware-requirements).
|
|
||||||
|
|
||||||
For a full list of games suyu supports, please visit our [Compatibility page](https://gitlab.com/suyu-emu/suyu/-/wikis/Compatibility).
|
|
||||||
|
|
||||||
Check out our [website](https://suyu.dev) for the latest news on exciting features, monthly progress reports, and more!
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
This project is completely free and open source, this project is made possible by many people who share the same interest.
|
This project is completely free and open source, and anyone can contribute to help improve suyu.
|
||||||
|
|
||||||
Most of the development happens on GitLab. For development discussion, please join us on [Discord](https://discord.gg/2gQRBp44KT).
|
Most of the development happens on GitLab. For development discussion, please join us on [Discord](https://discord.gg/2gQRBp44KT).
|
||||||
|
|
||||||
If you want to contribute, please take a look at the [Contributor's Guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing) and [Developer Information](https://gitlab.com/suyu-emu/suyu/-/wikis/Developer-Information).
|
If you want to contribute, please take a look at the [Contributor's Guide](https://gitlab.com/suyu-emu/suyu/-/wikis/Contributing) and [Developer Information](https://gitlab.com/suyu-emu/suyu/-/wikis/Developer-Information).
|
||||||
You can also contact any of the developers on Discord in order to know about the current state of the emulator.
|
You can also contact any of the developers on Discord to learn more about the current state of suyu.
|
||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
* __Windows__: [Legacy Artifacts](https://github.com/pineappleea/pineapple-src/releases)
|
* __Windows__: WIP
|
||||||
* __Linux__: [Legacy Artifacts](https://github.com/pineappleea/pineapple-src/releases)
|
* __Linux__: WIP
|
||||||
|
|
||||||
|
We don't have any official builds yet! If any website or person is claiming to have a build for suyu, take that with a grain of salt, because it might contain malware. Until we do have an official build, it might be a better idea to keep using the last version of yuzu.
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
|
@ -70,7 +65,7 @@ You can also contact any of the developers on Discord in order to know about the
|
||||||
|
|
||||||
## Support
|
## Support
|
||||||
|
|
||||||
This project is completely free and open source, this project is made possible by many people who share the same interest. Please join the Discord server [here](https://discord.gg/2gQRBp44KT) to contribute.
|
If you have any questions, don't hesitate to ask us on [Discord](https://discord.gg/2gQRBp44KT). We don't bite!
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
mkdir suyu.iconset
|
||||||
|
convert -background none -resize 16x16 suyu.svg suyu.iconset/icon_16x16.png;
|
||||||
|
convert -background none -resize 32x32 suyu.svg suyu.iconset/icon_16x16@2x.png;
|
||||||
|
convert -background none -resize 32x32 suyu.svg suyu.iconset/icon_32x32.png;
|
||||||
|
convert -background none -resize 64x64 suyu.svg suyu.iconset/icon_32x32@2x.png;
|
||||||
|
convert -background none -resize 128x128 suyu.svg suyu.iconset/icon_128x128.png;
|
||||||
|
convert -background none -resize 256x256 suyu.svg suyu.iconset/icon_256x256.png;
|
||||||
|
convert -background none -resize 256x256 suyu.svg suyu.iconset/icon_128x128@2x.png;
|
||||||
|
convert -background none -resize 512x512 suyu.svg suyu.iconset/icon_256x256@2x.png;
|
||||||
|
convert -background none -resize 512x512 suyu.svg suyu.iconset/icon_512x512.png;
|
||||||
|
convert -background none -resize 1024x1024 suyu.svg suyu.iconset/icon_512x512@2x.png;
|
||||||
|
|
||||||
|
iconutil -c icns suyu.iconset
|
||||||
|
rm -rf suyu.iconset
|
|
@ -6838,7 +6838,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>الخروج من يوزو</translation>
|
<translation>الخروج من يوزو</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6875,7 +6875,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation type="unfinished"/>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6859,7 +6859,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Ukončit yuzu</translation>
|
<translation>Ukončit yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6863,7 +6863,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation type="unfinished"/>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6886,7 +6886,7 @@ Debug Nachricht:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>yuzu verlassen</translation>
|
<translation>yuzu verlassen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6859,7 +6859,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation type="unfinished"/>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6932,7 +6932,7 @@ Mensaje de depuración: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Cerrar yuzu</translation>
|
<translation>Cerrar yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6925,7 +6925,7 @@ Message de débogage : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Quitter yuzu</translation>
|
<translation>Quitter yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6899,7 +6899,7 @@ Hibakereső üzenet:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Kilépés a yuzuból</translation>
|
<translation>Kilépés a yuzuból</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6916,7 +6916,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation type="unfinished"/>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6895,7 +6895,7 @@ Messaggio di debug:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Esci da yuzu</translation>
|
<translation>Esci da yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6881,7 +6881,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>yuzuを終了</translation>
|
<translation>yuzuを終了</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6880,7 +6880,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>yuzu 종료</translation>
|
<translation>yuzu 종료</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6885,7 +6885,7 @@ Feilmelding:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Avslutt yuzu</translation>
|
<translation>Avslutt yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6873,7 +6873,7 @@ Debug-bericht: </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>yuzu afsluiten</translation>
|
<translation>yuzu afsluiten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6876,7 +6876,7 @@ Komunikat debugowania:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Wyjdź z yuzu</translation>
|
<translation>Wyjdź z yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6934,7 +6934,7 @@ Mensagem de depuração:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Sair do yuzu</translation>
|
<translation>Sair do yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6917,7 +6917,7 @@ Mensagem de depuração:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Sair do yuzu</translation>
|
<translation>Sair do yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6930,7 +6930,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Выйти из yuzu</translation>
|
<translation>Выйти из yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6854,7 +6854,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation type="unfinished"/>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6876,7 +6876,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Yuzu'dan çık</translation>
|
<translation>Yuzu'dan çık</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6889,7 +6889,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Вийти з yuzu</translation>
|
<translation>Вийти з yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6882,7 +6882,7 @@ Tin nhắn gỡ lỗi:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Thoát yuzu</translation>
|
<translation>Thoát yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6882,7 +6882,7 @@ Tin nhắn gỡ lỗi:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>Thoát yuzu</translation>
|
<translation>Thoát yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6930,7 +6930,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>退出 yuzu</translation>
|
<translation>退出 yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -6926,7 +6926,7 @@ Debug Message: </source>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
<location filename="../../src/yuzu/uisettings.h" line="242"/>
|
||||||
<source>Exit yuzu</source>
|
<source>Exit suyu</source>
|
||||||
<translation>離開 yuzu</translation>
|
<translation>離開 yuzu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -8,8 +8,8 @@ Name=suyu
|
||||||
GenericName=Switch Emulator
|
GenericName=Switch Emulator
|
||||||
Comment=Nintendo Switch video game console emulator
|
Comment=Nintendo Switch video game console emulator
|
||||||
Icon=org.suyu_emu.suyu
|
Icon=org.suyu_emu.suyu
|
||||||
TryExec=suyu
|
TryExec=yuzu
|
||||||
Exec=suyu %f
|
Exec=yuzu %f
|
||||||
Categories=Game;Emulator;Qt;
|
Categories=Game;Emulator;Qt;
|
||||||
MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci;
|
MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci;
|
||||||
Keywords=Nintendo;Switch;
|
Keywords=Nintendo;Switch;
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <codecvt>
|
#include <codecvt>
|
||||||
|
@ -659,7 +659,7 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_submitInlineKeyboardInput(JNIEnv* env
|
||||||
|
|
||||||
void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* env,
|
void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* env,
|
||||||
jobject instance) {
|
jobject instance) {
|
||||||
const auto nand_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
|
const auto nand_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir);
|
||||||
auto vfs_nand_dir = EmulationSession::GetInstance().System().GetFilesystem()->OpenDirectory(
|
auto vfs_nand_dir = EmulationSession::GetInstance().System().GetFilesystem()->OpenDirectory(
|
||||||
Common::FS::PathToUTF8String(nand_dir), FileSys::OpenMode::Read);
|
Common::FS::PathToUTF8String(nand_dir), FileSys::OpenMode::Read);
|
||||||
|
|
||||||
|
@ -831,7 +831,7 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject j
|
||||||
const auto user_id = manager.GetUser(static_cast<std::size_t>(0));
|
const auto user_id = manager.GetUser(static_cast<std::size_t>(0));
|
||||||
ASSERT(user_id);
|
ASSERT(user_id);
|
||||||
|
|
||||||
const auto nandDir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
|
const auto nandDir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir);
|
||||||
auto vfsNandDir = system.GetFilesystem()->OpenDirectory(Common::FS::PathToUTF8String(nandDir),
|
auto vfsNandDir = system.GetFilesystem()->OpenDirectory(Common::FS::PathToUTF8String(nandDir),
|
||||||
FileSys::OpenMode::Read);
|
FileSys::OpenMode::Read);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: 2024 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2024 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <common/fs/fs.h>
|
#include <common/fs/fs.h>
|
||||||
|
@ -44,7 +44,7 @@ bool IsProfileNameValid(std::string_view profile_name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ProfileExistsInFilesystem(std::string_view profile_name) {
|
bool ProfileExistsInFilesystem(std::string_view profile_name) {
|
||||||
return Common::FS::Exists(Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "input" /
|
return Common::FS::Exists(Common::FS::GetSuyuPath(Common::FS::SuyuPath::ConfigDir) / "input" /
|
||||||
fmt::format("{}.ini", profile_name));
|
fmt::format("{}.ini", profile_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_loadInputProfiles(JNIEnv
|
||||||
jobject j_obj) {
|
jobject j_obj) {
|
||||||
map_profiles.clear();
|
map_profiles.clear();
|
||||||
const auto input_profile_loc =
|
const auto input_profile_loc =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "input";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::ConfigDir) / "input";
|
||||||
|
|
||||||
if (Common::FS::IsDir(input_profile_loc)) {
|
if (Common::FS::IsDir(input_profile_loc)) {
|
||||||
Common::FS::IterateDirEntries(
|
Common::FS::IterateDirEntries(
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
if (DEFINED ENV{AZURECIREPO})
|
if (DEFINED ENV{AZURECIREPO})
|
||||||
|
@ -161,8 +161,8 @@ add_library(common STATIC
|
||||||
zstd_compression.h
|
zstd_compression.h
|
||||||
)
|
)
|
||||||
|
|
||||||
if (YUZU_ENABLE_PORTABLE)
|
if (SUYU_ENABLE_PORTABLE)
|
||||||
add_compile_definitions(YUZU_ENABLE_PORTABLE)
|
add_compile_definitions(SUYU_ENABLE_PORTABLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -109,11 +109,11 @@ __declspec(dllimport) void __stdcall DebugBreak(void);
|
||||||
return static_cast<T>(key) == 0; \
|
return static_cast<T>(key) == 0; \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define YUZU_NON_COPYABLE(cls) \
|
#define SUYU_NON_COPYABLE(cls) \
|
||||||
cls(const cls&) = delete; \
|
cls(const cls&) = delete; \
|
||||||
cls& operator=(const cls&) = delete
|
cls& operator=(const cls&) = delete
|
||||||
|
|
||||||
#define YUZU_NON_MOVEABLE(cls) \
|
#define SUYU_NON_MOVEABLE(cls) \
|
||||||
cls(cls&&) = delete; \
|
cls(cls&&) = delete; \
|
||||||
cls& operator=(cls&&) = delete
|
cls& operator=(cls&&) = delete
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// yuzu data directories
|
// suyu data directories
|
||||||
|
|
||||||
#define YUZU_DIR "suyu"
|
#define SUYU_DIR "suyu"
|
||||||
#define PORTABLE_DIR "user"
|
#define PORTABLE_DIR "user"
|
||||||
|
|
||||||
// Sub-directories contained within a yuzu data directory
|
// Sub-directories contained within a suyu data directory
|
||||||
|
|
||||||
#define AMIIBO_DIR "amiibo"
|
#define AMIIBO_DIR "amiibo"
|
||||||
#define CACHE_DIR "cache"
|
#define CACHE_DIR "cache"
|
||||||
|
@ -26,6 +26,6 @@
|
||||||
#define TAS_DIR "tas"
|
#define TAS_DIR "tas"
|
||||||
#define ICONS_DIR "icons"
|
#define ICONS_DIR "icons"
|
||||||
|
|
||||||
// yuzu-specific files
|
// suyu-specific files
|
||||||
|
|
||||||
#define LOG_FILE "suyu_log.txt"
|
#define LOG_FILE "suyu_log.txt"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -56,10 +56,10 @@ namespace fs = std::filesystem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The PathManagerImpl is a singleton allowing to manage the mapping of
|
* The PathManagerImpl is a singleton allowing to manage the mapping of
|
||||||
* YuzuPath enums to real filesystem paths.
|
* SuyuPath enums to real filesystem paths.
|
||||||
* This class provides 2 functions: GetYuzuPathImpl and SetYuzuPathImpl.
|
* This class provides 2 functions: GetSuyuPathImpl and SetSuyuPathImpl.
|
||||||
* These are used by GetYuzuPath and SetYuzuPath respectively to get or modify
|
* These are used by GetSuyuPath and SetSuyuPath respectively to get or modify
|
||||||
* the path mapped by the YuzuPath enum.
|
* the path mapped by the SuyuPath enum.
|
||||||
*/
|
*/
|
||||||
class PathManagerImpl {
|
class PathManagerImpl {
|
||||||
public:
|
public:
|
||||||
|
@ -75,62 +75,62 @@ public:
|
||||||
PathManagerImpl(PathManagerImpl&&) = delete;
|
PathManagerImpl(PathManagerImpl&&) = delete;
|
||||||
PathManagerImpl& operator=(PathManagerImpl&&) = delete;
|
PathManagerImpl& operator=(PathManagerImpl&&) = delete;
|
||||||
|
|
||||||
[[nodiscard]] const fs::path& GetYuzuPathImpl(YuzuPath yuzu_path) {
|
[[nodiscard]] const fs::path& GetSuyuPathImpl(SuyuPath suyu_path) {
|
||||||
return yuzu_paths.at(yuzu_path);
|
return suyu_paths.at(suyu_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetYuzuPathImpl(YuzuPath yuzu_path, const fs::path& new_path) {
|
void SetSuyuPathImpl(SuyuPath suyu_path, const fs::path& new_path) {
|
||||||
yuzu_paths.insert_or_assign(yuzu_path, new_path);
|
suyu_paths.insert_or_assign(suyu_path, new_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reinitialize(fs::path yuzu_path = {}) {
|
void Reinitialize(fs::path suyu_path = {}) {
|
||||||
fs::path yuzu_path_cache;
|
fs::path suyu_path_cache;
|
||||||
fs::path yuzu_path_config;
|
fs::path suyu_path_config;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#ifdef YUZU_ENABLE_PORTABLE
|
#ifdef SUYU_ENABLE_PORTABLE
|
||||||
yuzu_path = GetExeDirectory() / PORTABLE_DIR;
|
suyu_path = GetExeDirectory() / PORTABLE_DIR;
|
||||||
#endif
|
#endif
|
||||||
if (!IsDir(yuzu_path)) {
|
if (!IsDir(suyu_path)) {
|
||||||
yuzu_path = GetAppDataRoamingDirectory() / YUZU_DIR;
|
suyu_path = GetAppDataRoamingDirectory() / SUYU_DIR;
|
||||||
}
|
}
|
||||||
|
|
||||||
yuzu_path_cache = yuzu_path / CACHE_DIR;
|
suyu_path_cache = suyu_path / CACHE_DIR;
|
||||||
yuzu_path_config = yuzu_path / CONFIG_DIR;
|
suyu_path_config = suyu_path / CONFIG_DIR;
|
||||||
#elif ANDROID
|
#elif ANDROID
|
||||||
ASSERT(!yuzu_path.empty());
|
ASSERT(!suyu_path.empty());
|
||||||
yuzu_path_cache = yuzu_path / CACHE_DIR;
|
suyu_path_cache = suyu_path / CACHE_DIR;
|
||||||
yuzu_path_config = yuzu_path / CONFIG_DIR;
|
suyu_path_config = suyu_path / CONFIG_DIR;
|
||||||
#else
|
#else
|
||||||
#ifdef YUZU_ENABLE_PORTABLE
|
#ifdef SUYU_ENABLE_PORTABLE
|
||||||
yuzu_path = GetCurrentDir() / PORTABLE_DIR;
|
suyu_path = GetCurrentDir() / PORTABLE_DIR;
|
||||||
#endif
|
#endif
|
||||||
if (Exists(yuzu_path) && IsDir(yuzu_path)) {
|
if (Exists(suyu_path) && IsDir(suyu_path)) {
|
||||||
yuzu_path_cache = yuzu_path / CACHE_DIR;
|
suyu_path_cache = suyu_path / CACHE_DIR;
|
||||||
yuzu_path_config = yuzu_path / CONFIG_DIR;
|
suyu_path_config = suyu_path / CONFIG_DIR;
|
||||||
} else {
|
} else {
|
||||||
yuzu_path = GetDataDirectory("XDG_DATA_HOME") / YUZU_DIR;
|
suyu_path = GetDataDirectory("XDG_DATA_HOME") / SUYU_DIR;
|
||||||
yuzu_path_cache = GetDataDirectory("XDG_CACHE_HOME") / YUZU_DIR;
|
suyu_path_cache = GetDataDirectory("XDG_CACHE_HOME") / SUYU_DIR;
|
||||||
yuzu_path_config = GetDataDirectory("XDG_CONFIG_HOME") / YUZU_DIR;
|
suyu_path_config = GetDataDirectory("XDG_CONFIG_HOME") / SUYU_DIR;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GenerateYuzuPath(YuzuPath::YuzuDir, yuzu_path);
|
GenerateSuyuPath(SuyuPath::SuyuDir, suyu_path);
|
||||||
GenerateYuzuPath(YuzuPath::AmiiboDir, yuzu_path / AMIIBO_DIR);
|
GenerateSuyuPath(SuyuPath::AmiiboDir, suyu_path / AMIIBO_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::CacheDir, yuzu_path_cache);
|
GenerateSuyuPath(SuyuPath::CacheDir, suyu_path_cache);
|
||||||
GenerateYuzuPath(YuzuPath::ConfigDir, yuzu_path_config);
|
GenerateSuyuPath(SuyuPath::ConfigDir, suyu_path_config);
|
||||||
GenerateYuzuPath(YuzuPath::CrashDumpsDir, yuzu_path / CRASH_DUMPS_DIR);
|
GenerateSuyuPath(SuyuPath::CrashDumpsDir, suyu_path / CRASH_DUMPS_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::DumpDir, yuzu_path / DUMP_DIR);
|
GenerateSuyuPath(SuyuPath::DumpDir, suyu_path / DUMP_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::KeysDir, yuzu_path / KEYS_DIR);
|
GenerateSuyuPath(SuyuPath::KeysDir, suyu_path / KEYS_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::LoadDir, yuzu_path / LOAD_DIR);
|
GenerateSuyuPath(SuyuPath::LoadDir, suyu_path / LOAD_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::LogDir, yuzu_path / LOG_DIR);
|
GenerateSuyuPath(SuyuPath::LogDir, suyu_path / LOG_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::NANDDir, yuzu_path / NAND_DIR);
|
GenerateSuyuPath(SuyuPath::NANDDir, suyu_path / NAND_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::PlayTimeDir, yuzu_path / PLAY_TIME_DIR);
|
GenerateSuyuPath(SuyuPath::PlayTimeDir, suyu_path / PLAY_TIME_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::ScreenshotsDir, yuzu_path / SCREENSHOTS_DIR);
|
GenerateSuyuPath(SuyuPath::ScreenshotsDir, suyu_path / SCREENSHOTS_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::SDMCDir, yuzu_path / SDMC_DIR);
|
GenerateSuyuPath(SuyuPath::SDMCDir, suyu_path / SDMC_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::ShaderDir, yuzu_path / SHADER_DIR);
|
GenerateSuyuPath(SuyuPath::ShaderDir, suyu_path / SHADER_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::TASDir, yuzu_path / TAS_DIR);
|
GenerateSuyuPath(SuyuPath::TASDir, suyu_path / TAS_DIR);
|
||||||
GenerateYuzuPath(YuzuPath::IconsDir, yuzu_path / ICONS_DIR);
|
GenerateSuyuPath(SuyuPath::IconsDir, suyu_path / ICONS_DIR);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -140,13 +140,13 @@ private:
|
||||||
|
|
||||||
~PathManagerImpl() = default;
|
~PathManagerImpl() = default;
|
||||||
|
|
||||||
void GenerateYuzuPath(YuzuPath yuzu_path, const fs::path& new_path) {
|
void GenerateSuyuPath(SuyuPath suyu_path, const fs::path& new_path) {
|
||||||
void(FS::CreateDir(new_path));
|
void(FS::CreateDir(new_path));
|
||||||
|
|
||||||
SetYuzuPathImpl(yuzu_path, new_path);
|
SetSuyuPathImpl(suyu_path, new_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unordered_map<YuzuPath, fs::path> yuzu_paths;
|
std::unordered_map<SuyuPath, fs::path> suyu_paths;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ValidatePath(const fs::path& path) {
|
bool ValidatePath(const fs::path& path) {
|
||||||
|
@ -230,22 +230,22 @@ void SetAppDirectory(const std::string& app_directory) {
|
||||||
PathManagerImpl::GetInstance().Reinitialize(app_directory);
|
PathManagerImpl::GetInstance().Reinitialize(app_directory);
|
||||||
}
|
}
|
||||||
|
|
||||||
const fs::path& GetYuzuPath(YuzuPath yuzu_path) {
|
const fs::path& GetSuyuPath(SuyuPath suyu_path) {
|
||||||
return PathManagerImpl::GetInstance().GetYuzuPathImpl(yuzu_path);
|
return PathManagerImpl::GetInstance().GetSuyuPathImpl(suyu_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GetYuzuPathString(YuzuPath yuzu_path) {
|
std::string GetSuyuPathString(SuyuPath suyu_path) {
|
||||||
return PathToUTF8String(GetYuzuPath(yuzu_path));
|
return PathToUTF8String(GetSuyuPath(suyu_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetYuzuPath(YuzuPath yuzu_path, const fs::path& new_path) {
|
void SetSuyuPath(SuyuPath suyu_path, const fs::path& new_path) {
|
||||||
if (!FS::IsDir(new_path)) {
|
if (!FS::IsDir(new_path)) {
|
||||||
LOG_ERROR(Common_Filesystem, "Filesystem object at new_path={} is not a directory",
|
LOG_ERROR(Common_Filesystem, "Filesystem object at new_path={} is not a directory",
|
||||||
PathToUTF8String(new_path));
|
PathToUTF8String(new_path));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PathManagerImpl::GetInstance().SetYuzuPathImpl(yuzu_path, new_path);
|
PathManagerImpl::GetInstance().SetSuyuPathImpl(suyu_path, new_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
namespace Common::FS {
|
namespace Common::FS {
|
||||||
|
|
||||||
enum class YuzuPath {
|
enum class SuyuPath {
|
||||||
YuzuDir, // Where yuzu stores its data.
|
SuyuDir, // Where suyu stores its data.
|
||||||
AmiiboDir, // Where Amiibo backups are stored.
|
AmiiboDir, // Where Amiibo backups are stored.
|
||||||
CacheDir, // Where cached filesystem data is stored.
|
CacheDir, // Where cached filesystem data is stored.
|
||||||
ConfigDir, // Where config files are stored.
|
ConfigDir, // Where config files are stored.
|
||||||
|
@ -22,7 +22,7 @@ enum class YuzuPath {
|
||||||
LogDir, // Where log files are stored.
|
LogDir, // Where log files are stored.
|
||||||
NANDDir, // Where the emulated NAND is stored.
|
NANDDir, // Where the emulated NAND is stored.
|
||||||
PlayTimeDir, // Where play time data is stored.
|
PlayTimeDir, // Where play time data is stored.
|
||||||
ScreenshotsDir, // Where yuzu screenshots are stored.
|
ScreenshotsDir, // Where suyu screenshots are stored.
|
||||||
SDMCDir, // Where the emulated SDMC is stored.
|
SDMCDir, // Where the emulated SDMC is stored.
|
||||||
ShaderDir, // Where shaders are stored.
|
ShaderDir, // Where shaders are stored.
|
||||||
TASDir, // Where TAS scripts are stored.
|
TASDir, // Where TAS scripts are stored.
|
||||||
|
@ -193,39 +193,39 @@ template <typename Path>
|
||||||
void SetAppDirectory(const std::string& app_directory);
|
void SetAppDirectory(const std::string& app_directory);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the filesystem path associated with the YuzuPath enum.
|
* Gets the filesystem path associated with the SuyuPath enum.
|
||||||
*
|
*
|
||||||
* @param yuzu_path YuzuPath enum
|
* @param suyu_path SuyuPath enum
|
||||||
*
|
*
|
||||||
* @returns The filesystem path associated with the YuzuPath enum.
|
* @returns The filesystem path associated with the SuyuPath enum.
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] const std::filesystem::path& GetYuzuPath(YuzuPath yuzu_path);
|
[[nodiscard]] const std::filesystem::path& GetSuyuPath(SuyuPath suyu_path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the filesystem path associated with the YuzuPath enum as a UTF-8 encoded std::string.
|
* Gets the filesystem path associated with the SuyuPath enum as a UTF-8 encoded std::string.
|
||||||
*
|
*
|
||||||
* @param yuzu_path YuzuPath enum
|
* @param suyu_path SuyuPath enum
|
||||||
*
|
*
|
||||||
* @returns The filesystem path associated with the YuzuPath enum as a UTF-8 encoded std::string.
|
* @returns The filesystem path associated with the SuyuPath enum as a UTF-8 encoded std::string.
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] std::string GetYuzuPathString(YuzuPath yuzu_path);
|
[[nodiscard]] std::string GetSuyuPathString(SuyuPath suyu_path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a new filesystem path associated with the YuzuPath enum.
|
* Sets a new filesystem path associated with the SuyuPath enum.
|
||||||
* If the filesystem object at new_path is not a directory, this function will not do anything.
|
* If the filesystem object at new_path is not a directory, this function will not do anything.
|
||||||
*
|
*
|
||||||
* @param yuzu_path YuzuPath enum
|
* @param suyu_path SuyuPath enum
|
||||||
* @param new_path New filesystem path
|
* @param new_path New filesystem path
|
||||||
*/
|
*/
|
||||||
void SetYuzuPath(YuzuPath yuzu_path, const std::filesystem::path& new_path);
|
void SetSuyuPath(SuyuPath suyu_path, const std::filesystem::path& new_path);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
template <typename Path>
|
template <typename Path>
|
||||||
void SetYuzuPath(YuzuPath yuzu_path, const Path& new_path) {
|
void SetSuyuPath(SuyuPath suyu_path, const Path& new_path) {
|
||||||
if constexpr (IsChar<typename Path::value_type>) {
|
if constexpr (IsChar<typename Path::value_type>) {
|
||||||
SetYuzuPath(yuzu_path, ToU8String(new_path));
|
SetSuyuPath(suyu_path, ToU8String(new_path));
|
||||||
} else {
|
} else {
|
||||||
SetYuzuPath(yuzu_path, std::filesystem::path{new_path});
|
SetSuyuPath(suyu_path, std::filesystem::path{new_path});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -257,14 +257,14 @@ void SetYuzuPath(YuzuPath yuzu_path, const Path& new_path) {
|
||||||
[[nodiscard]] std::filesystem::path GetHomeDirectory();
|
[[nodiscard]] std::filesystem::path GetHomeDirectory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the relevant paths for yuzu to store its data based on the given XDG environment variable.
|
* Gets the relevant paths for suyu to store its data based on the given XDG environment variable.
|
||||||
* See https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
* See https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||||
* Defaults to $HOME/.local/share for main application data,
|
* Defaults to $HOME/.local/share for main application data,
|
||||||
* $HOME/.cache for cached data, and $HOME/.config for configuration files.
|
* $HOME/.cache for cached data, and $HOME/.config for configuration files.
|
||||||
*
|
*
|
||||||
* @param env_name XDG environment variable name
|
* @param env_name XDG environment variable name
|
||||||
*
|
*
|
||||||
* @returns The path where yuzu should store its data.
|
* @returns The path where suyu should store its data.
|
||||||
*/
|
*/
|
||||||
[[nodiscard]] std::filesystem::path GetDataDirectory(const std::string& env_name);
|
[[nodiscard]] std::filesystem::path GetDataDirectory(const std::string& env_name);
|
||||||
|
|
||||||
|
@ -288,11 +288,11 @@ enum class DirectorySeparator {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Splits the path on '/' or '\' and put the components into a vector
|
// Splits the path on '/' or '\' and put the components into a vector
|
||||||
// i.e. "C:\Users\Yuzu\Documents\save.bin" becomes {"C:", "Users", "Yuzu", "Documents", "save.bin" }
|
// i.e. "C:\Users\Suyu\Documents\save.bin" becomes {"C:", "Users", "Suyu", "Documents", "save.bin" }
|
||||||
[[nodiscard]] std::vector<std::string_view> SplitPathComponents(std::string_view filename);
|
[[nodiscard]] std::vector<std::string_view> SplitPathComponents(std::string_view filename);
|
||||||
|
|
||||||
// Splits the path on '/' or '\' and put the components into a vector
|
// Splits the path on '/' or '\' and put the components into a vector
|
||||||
// i.e. "C:\Users\Yuzu\Documents\save.bin" becomes {"C:", "Users", "Yuzu", "Documents", "save.bin" }
|
// i.e. "C:\Users\Suyu\Documents\save.bin" becomes {"C:", "Users", "Suyu", "Documents", "save.bin" }
|
||||||
[[nodiscard]] std::vector<std::string> SplitPathComponentsCopy(std::string_view filename);
|
[[nodiscard]] std::vector<std::string> SplitPathComponentsCopy(std::string_view filename);
|
||||||
|
|
||||||
// Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'. Makes '/' into '\\'
|
// Removes trailing slash, makes all '\\' into '/', and removes duplicate '/'. Makes '/' into '\\'
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -16,7 +16,7 @@ class IntrusiveListImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
class IntrusiveListNode {
|
class IntrusiveListNode {
|
||||||
YUZU_NON_COPYABLE(IntrusiveListNode);
|
SUYU_NON_COPYABLE(IntrusiveListNode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class impl::IntrusiveListImpl;
|
friend class impl::IntrusiveListImpl;
|
||||||
|
@ -96,7 +96,7 @@ private:
|
||||||
namespace impl {
|
namespace impl {
|
||||||
|
|
||||||
class IntrusiveListImpl {
|
class IntrusiveListImpl {
|
||||||
YUZU_NON_COPYABLE(IntrusiveListImpl);
|
SUYU_NON_COPYABLE(IntrusiveListImpl);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IntrusiveListNode m_root_node;
|
IntrusiveListNode m_root_node;
|
||||||
|
@ -302,7 +302,7 @@ private:
|
||||||
|
|
||||||
template <class T, class Traits>
|
template <class T, class Traits>
|
||||||
class IntrusiveList {
|
class IntrusiveList {
|
||||||
YUZU_NON_COPYABLE(IntrusiveList);
|
SUYU_NON_COPYABLE(IntrusiveList);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
impl::IntrusiveListImpl m_impl;
|
impl::IntrusiveListImpl m_impl;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -17,7 +17,7 @@ class IntrusiveRedBlackTreeImpl;
|
||||||
|
|
||||||
#pragma pack(push, 4)
|
#pragma pack(push, 4)
|
||||||
struct IntrusiveRedBlackTreeNode {
|
struct IntrusiveRedBlackTreeNode {
|
||||||
YUZU_NON_COPYABLE(IntrusiveRedBlackTreeNode);
|
SUYU_NON_COPYABLE(IntrusiveRedBlackTreeNode);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using RBEntry = freebsd::RBEntry<IntrusiveRedBlackTreeNode>;
|
using RBEntry = freebsd::RBEntry<IntrusiveRedBlackTreeNode>;
|
||||||
|
@ -49,7 +49,7 @@ class IntrusiveRedBlackTree;
|
||||||
namespace impl {
|
namespace impl {
|
||||||
|
|
||||||
class IntrusiveRedBlackTreeImpl {
|
class IntrusiveRedBlackTreeImpl {
|
||||||
YUZU_NON_COPYABLE(IntrusiveRedBlackTreeImpl);
|
SUYU_NON_COPYABLE(IntrusiveRedBlackTreeImpl);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template <class, class, class>
|
template <class, class, class>
|
||||||
|
@ -261,7 +261,7 @@ using RedBlackKeyType = std::remove_pointer_t<decltype(impl::GetRedBlackKeyType<
|
||||||
|
|
||||||
template <class T, class Traits, class Comparator>
|
template <class T, class Traits, class Comparator>
|
||||||
class IntrusiveRedBlackTree {
|
class IntrusiveRedBlackTree {
|
||||||
YUZU_NON_COPYABLE(IntrusiveRedBlackTree);
|
SUYU_NON_COPYABLE(IntrusiveRedBlackTree);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using ImplType = impl::IntrusiveRedBlackTreeImpl;
|
using ImplType = impl::IntrusiveRedBlackTreeImpl;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
// SPDX-FileCopyrightText: 2014 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
@ -195,7 +195,7 @@ public:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
using namespace Common::FS;
|
using namespace Common::FS;
|
||||||
const auto& log_dir = GetYuzuPath(YuzuPath::LogDir);
|
const auto& log_dir = GetSuyuPath(SuyuPath::LogDir);
|
||||||
void(CreateDir(log_dir));
|
void(CreateDir(log_dir));
|
||||||
Filter filter;
|
Filter filter;
|
||||||
filter.ParseFilterString(Settings::values.log_filter.GetValue());
|
filter.ParseFilterString(Settings::values.log_filter.GetValue());
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
@ -14,7 +14,7 @@ namespace Common {
|
||||||
void ConfigureNvidiaEnvironmentFlags() {
|
void ConfigureNvidiaEnvironmentFlags() {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
const auto nvidia_shader_dir =
|
const auto nvidia_shader_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir) / "nvidia";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::ShaderDir) / "nvidia";
|
||||||
|
|
||||||
if (!Common::FS::CreateDirs(nvidia_shader_dir)) {
|
if (!Common::FS::CreateDirs(nvidia_shader_dir)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
// SPDX-FileCopyrightText: 2014 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
namespace detail {
|
namespace detail {
|
||||||
template <class F>
|
template <class F>
|
||||||
class ScopeGuard {
|
class ScopeGuard {
|
||||||
YUZU_NON_COPYABLE(ScopeGuard);
|
SUYU_NON_COPYABLE(ScopeGuard);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
F f;
|
F f;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <version>
|
#include <version>
|
||||||
|
@ -130,11 +130,11 @@ void LogSettings() {
|
||||||
log_setting(name, setting->Canonicalize());
|
log_setting(name, setting->Canonicalize());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log_path("DataStorage_CacheDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir));
|
log_path("DataStorage_CacheDir", Common::FS::GetSuyuPath(Common::FS::SuyuPath::CacheDir));
|
||||||
log_path("DataStorage_ConfigDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir));
|
log_path("DataStorage_ConfigDir", Common::FS::GetSuyuPath(Common::FS::SuyuPath::ConfigDir));
|
||||||
log_path("DataStorage_LoadDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::LoadDir));
|
log_path("DataStorage_LoadDir", Common::FS::GetSuyuPath(Common::FS::SuyuPath::LoadDir));
|
||||||
log_path("DataStorage_NANDDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir));
|
log_path("DataStorage_NANDDir", Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir));
|
||||||
log_path("DataStorage_SDMCDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir));
|
log_path("DataStorage_SDMCDir", Common::FS::GetSuyuPath(Common::FS::SuyuPath::SDMCDir));
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateGPUAccuracy() {
|
void UpdateGPUAccuracy() {
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
// Modified by palfaiate on <2024/03/07>
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: 2017 Citra Emulator Project
|
// SPDX-FileCopyrightText: 2017 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -52,7 +52,7 @@ public:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class Field : public FieldInterface {
|
class Field : public FieldInterface {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(Field);
|
SUYU_NON_COPYABLE(Field);
|
||||||
|
|
||||||
Field(FieldType type_, std::string_view name_, T value_)
|
Field(FieldType type_, std::string_view name_, T value_)
|
||||||
: name(name_), type(type_), value(std::move(value_)) {}
|
: name(name_), type(type_), value(std::move(value_)) {}
|
||||||
|
@ -101,7 +101,7 @@ private:
|
||||||
*/
|
*/
|
||||||
class FieldCollection final {
|
class FieldCollection final {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(FieldCollection);
|
SUYU_NON_COPYABLE(FieldCollection);
|
||||||
|
|
||||||
FieldCollection() = default;
|
FieldCollection() = default;
|
||||||
~FieldCollection() = default;
|
~FieldCollection() = default;
|
||||||
|
@ -168,7 +168,7 @@ struct VisitorInterface {
|
||||||
* backend implementation is not available.
|
* backend implementation is not available.
|
||||||
*/
|
*/
|
||||||
struct NullVisitor final : public VisitorInterface {
|
struct NullVisitor final : public VisitorInterface {
|
||||||
YUZU_NON_COPYABLE(NullVisitor);
|
SUYU_NON_COPYABLE(NullVisitor);
|
||||||
|
|
||||||
NullVisitor() = default;
|
NullVisitor() = default;
|
||||||
~NullVisitor() override = default;
|
~NullVisitor() override = default;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
// SPDX-FileCopyrightText: 2014 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -47,8 +47,8 @@ enum class Architecture {
|
||||||
/// Generic ARMv8 CPU interface
|
/// Generic ARMv8 CPU interface
|
||||||
class ArmInterface {
|
class ArmInterface {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(ArmInterface);
|
SUYU_NON_COPYABLE(ArmInterface);
|
||||||
YUZU_NON_MOVEABLE(ArmInterface);
|
SUYU_NON_MOVEABLE(ArmInterface);
|
||||||
|
|
||||||
explicit ArmInterface(bool uses_wall_clock) : m_uses_wall_clock{uses_wall_clock} {}
|
explicit ArmInterface(bool uses_wall_clock) : m_uses_wall_clock{uses_wall_clock} {}
|
||||||
virtual ~ArmInterface() = default;
|
virtual ~ArmInterface() = default;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -372,7 +372,7 @@ Key128 DeriveKeyblobMACKey(const Key128& keyblob_key, const Key128& mac_source)
|
||||||
|
|
||||||
std::optional<Key128> DeriveSDSeed() {
|
std::optional<Key128> DeriveSDSeed() {
|
||||||
const auto system_save_43_path =
|
const auto system_save_43_path =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000043";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000043";
|
||||||
const Common::FS::IOFile save_43{system_save_43_path, Common::FS::FileAccessMode::Read,
|
const Common::FS::IOFile save_43{system_save_43_path, Common::FS::FileAccessMode::Read,
|
||||||
Common::FS::FileType::BinaryFile};
|
Common::FS::FileType::BinaryFile};
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ std::optional<Key128> DeriveSDSeed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto sd_private_path =
|
const auto sd_private_path =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir) / "Nintendo/Contents/private";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::SDMCDir) / "Nintendo/Contents/private";
|
||||||
|
|
||||||
const Common::FS::IOFile sd_private{sd_private_path, Common::FS::FileAccessMode::Read,
|
const Common::FS::IOFile sd_private{sd_private_path, Common::FS::FileAccessMode::Read,
|
||||||
Common::FS::FileType::BinaryFile};
|
Common::FS::FileType::BinaryFile};
|
||||||
|
@ -640,7 +640,7 @@ KeyManager::KeyManager() {
|
||||||
|
|
||||||
void KeyManager::ReloadKeys() {
|
void KeyManager::ReloadKeys() {
|
||||||
// Initialize keys
|
// Initialize keys
|
||||||
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
const auto yuzu_keys_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::KeysDir);
|
||||||
|
|
||||||
if (!Common::FS::CreateDir(yuzu_keys_dir)) {
|
if (!Common::FS::CreateDir(yuzu_keys_dir)) {
|
||||||
LOG_ERROR(Core, "Failed to create the keys directory.");
|
LOG_ERROR(Core, "Failed to create the keys directory.");
|
||||||
|
@ -861,7 +861,7 @@ void KeyManager::SetKey(S256KeyType id, Key256 key, u64 field1, u64 field2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeyManager::KeyFileExists(bool title) {
|
bool KeyManager::KeyFileExists(bool title) {
|
||||||
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
const auto yuzu_keys_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::KeysDir);
|
||||||
|
|
||||||
if (title) {
|
if (title) {
|
||||||
return Common::FS::Exists(yuzu_keys_dir / "title.keys");
|
return Common::FS::Exists(yuzu_keys_dir / "title.keys");
|
||||||
|
@ -1108,7 +1108,7 @@ void KeyManager::PopulateTickets() {
|
||||||
std::vector<Ticket> tickets;
|
std::vector<Ticket> tickets;
|
||||||
|
|
||||||
const auto system_save_e1_path =
|
const auto system_save_e1_path =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/80000000000000e1";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/80000000000000e1";
|
||||||
if (Common::FS::Exists(system_save_e1_path)) {
|
if (Common::FS::Exists(system_save_e1_path)) {
|
||||||
const Common::FS::IOFile save_e1{system_save_e1_path, Common::FS::FileAccessMode::Read,
|
const Common::FS::IOFile save_e1{system_save_e1_path, Common::FS::FileAccessMode::Read,
|
||||||
Common::FS::FileType::BinaryFile};
|
Common::FS::FileType::BinaryFile};
|
||||||
|
@ -1117,7 +1117,7 @@ void KeyManager::PopulateTickets() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto system_save_e2_path =
|
const auto system_save_e2_path =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/80000000000000e2";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/80000000000000e2";
|
||||||
if (Common::FS::Exists(system_save_e2_path)) {
|
if (Common::FS::Exists(system_save_e2_path)) {
|
||||||
const Common::FS::IOFile save_e2{system_save_e2_path, Common::FS::FileAccessMode::Read,
|
const Common::FS::IOFile save_e2{system_save_e2_path, Common::FS::FileAccessMode::Read,
|
||||||
Common::FS::FileType::BinaryFile};
|
Common::FS::FileType::BinaryFile};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
|
@ -83,7 +83,7 @@ VirtualFile BISFactory::OpenPartitionStorage(BisPartitionId id,
|
||||||
VirtualFilesystem file_system) const {
|
VirtualFilesystem file_system) const {
|
||||||
auto& keys = Core::Crypto::KeyManager::Instance();
|
auto& keys = Core::Crypto::KeyManager::Instance();
|
||||||
Core::Crypto::PartitionDataManager pdm{file_system->OpenDirectory(
|
Core::Crypto::PartitionDataManager pdm{file_system->OpenDirectory(
|
||||||
Common::FS::GetYuzuPathString(Common::FS::YuzuPath::NANDDir), OpenMode::Read)};
|
Common::FS::GetSuyuPathString(Common::FS::SuyuPath::NANDDir), OpenMode::Read)};
|
||||||
keys.PopulateFromPartitionData(pdm);
|
keys.PopulateFromPartitionData(pdm);
|
||||||
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -15,8 +15,8 @@ namespace FileSys {
|
||||||
class DirectoryPathParser;
|
class DirectoryPathParser;
|
||||||
|
|
||||||
class Path {
|
class Path {
|
||||||
YUZU_NON_COPYABLE(Path);
|
SUYU_NON_COPYABLE(Path);
|
||||||
YUZU_NON_MOVEABLE(Path);
|
SUYU_NON_MOVEABLE(Path);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static constexpr const char* EmptyPath = "";
|
static constexpr const char* EmptyPath = "";
|
||||||
|
@ -27,7 +27,7 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
class WriteBuffer {
|
class WriteBuffer {
|
||||||
YUZU_NON_COPYABLE(WriteBuffer);
|
SUYU_NON_COPYABLE(WriteBuffer);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char* m_buffer;
|
char* m_buffer;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -14,8 +14,8 @@ namespace FileSys {
|
||||||
using namespace Common::Literals;
|
using namespace Common::Literals;
|
||||||
|
|
||||||
class AesCtrCounterExtendedStorage : public IReadOnlyStorage {
|
class AesCtrCounterExtendedStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(AesCtrCounterExtendedStorage);
|
SUYU_NON_COPYABLE(AesCtrCounterExtendedStorage);
|
||||||
YUZU_NON_MOVEABLE(AesCtrCounterExtendedStorage);
|
SUYU_NON_MOVEABLE(AesCtrCounterExtendedStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t BlockSize = 0x10;
|
static constexpr size_t BlockSize = 0x10;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class AesCtrStorage : public IStorage {
|
class AesCtrStorage : public IStorage {
|
||||||
YUZU_NON_COPYABLE(AesCtrStorage);
|
SUYU_NON_COPYABLE(AesCtrStorage);
|
||||||
YUZU_NON_MOVEABLE(AesCtrStorage);
|
SUYU_NON_MOVEABLE(AesCtrStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t BlockSize = 0x10;
|
static constexpr size_t BlockSize = 0x10;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class AesXtsStorage : public IReadOnlyStorage {
|
class AesXtsStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(AesXtsStorage);
|
SUYU_NON_COPYABLE(AesXtsStorage);
|
||||||
YUZU_NON_MOVEABLE(AesXtsStorage);
|
SUYU_NON_MOVEABLE(AesXtsStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t AesBlockSize = 0x10;
|
static constexpr size_t AesBlockSize = 0x10;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -13,8 +13,8 @@ namespace FileSys {
|
||||||
|
|
||||||
template <size_t DataAlign_, size_t BufferAlign_>
|
template <size_t DataAlign_, size_t BufferAlign_>
|
||||||
class AlignmentMatchingStorage : public IStorage {
|
class AlignmentMatchingStorage : public IStorage {
|
||||||
YUZU_NON_COPYABLE(AlignmentMatchingStorage);
|
SUYU_NON_COPYABLE(AlignmentMatchingStorage);
|
||||||
YUZU_NON_MOVEABLE(AlignmentMatchingStorage);
|
SUYU_NON_MOVEABLE(AlignmentMatchingStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t DataAlign = DataAlign_;
|
static constexpr size_t DataAlign = DataAlign_;
|
||||||
|
@ -77,8 +77,8 @@ public:
|
||||||
|
|
||||||
template <size_t BufferAlign_>
|
template <size_t BufferAlign_>
|
||||||
class AlignmentMatchingStoragePooledBuffer : public IStorage {
|
class AlignmentMatchingStoragePooledBuffer : public IStorage {
|
||||||
YUZU_NON_COPYABLE(AlignmentMatchingStoragePooledBuffer);
|
SUYU_NON_COPYABLE(AlignmentMatchingStoragePooledBuffer);
|
||||||
YUZU_NON_MOVEABLE(AlignmentMatchingStoragePooledBuffer);
|
SUYU_NON_MOVEABLE(AlignmentMatchingStoragePooledBuffer);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t BufferAlign = BufferAlign_;
|
static constexpr size_t BufferAlign = BufferAlign_;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -18,8 +18,8 @@ namespace FileSys {
|
||||||
using namespace Common::Literals;
|
using namespace Common::Literals;
|
||||||
|
|
||||||
class BucketTree {
|
class BucketTree {
|
||||||
YUZU_NON_COPYABLE(BucketTree);
|
SUYU_NON_COPYABLE(BucketTree);
|
||||||
YUZU_NON_MOVEABLE(BucketTree);
|
SUYU_NON_MOVEABLE(BucketTree);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr u32 Magic = Common::MakeMagic('B', 'K', 'T', 'R');
|
static constexpr u32 Magic = Common::MakeMagic('B', 'K', 'T', 'R');
|
||||||
|
@ -123,7 +123,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class NodeBuffer {
|
class NodeBuffer {
|
||||||
YUZU_NON_COPYABLE(NodeBuffer);
|
SUYU_NON_COPYABLE(NodeBuffer);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NodeBuffer() : m_header() {}
|
NodeBuffer() : m_header() {}
|
||||||
|
@ -330,8 +330,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class BucketTree::Visitor {
|
class BucketTree::Visitor {
|
||||||
YUZU_NON_COPYABLE(Visitor);
|
SUYU_NON_COPYABLE(Visitor);
|
||||||
YUZU_NON_MOVEABLE(Visitor);
|
SUYU_NON_MOVEABLE(Visitor);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
constexpr Visitor()
|
constexpr Visitor()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -17,8 +17,8 @@ namespace FileSys {
|
||||||
using namespace Common::Literals;
|
using namespace Common::Literals;
|
||||||
|
|
||||||
class CompressedStorage : public IReadOnlyStorage {
|
class CompressedStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(CompressedStorage);
|
SUYU_NON_COPYABLE(CompressedStorage);
|
||||||
YUZU_NON_MOVEABLE(CompressedStorage);
|
SUYU_NON_MOVEABLE(CompressedStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t NodeSize = 16_KiB;
|
static constexpr size_t NodeSize = 16_KiB;
|
||||||
|
@ -47,8 +47,8 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class CompressedStorageCore {
|
class CompressedStorageCore {
|
||||||
YUZU_NON_COPYABLE(CompressedStorageCore);
|
SUYU_NON_COPYABLE(CompressedStorageCore);
|
||||||
YUZU_NON_MOVEABLE(CompressedStorageCore);
|
SUYU_NON_MOVEABLE(CompressedStorageCore);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CompressedStorageCore() : m_table(), m_data_storage() {}
|
CompressedStorageCore() : m_table(), m_data_storage() {}
|
||||||
|
@ -674,8 +674,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class CacheManager {
|
class CacheManager {
|
||||||
YUZU_NON_COPYABLE(CacheManager);
|
SUYU_NON_COPYABLE(CacheManager);
|
||||||
YUZU_NON_MOVEABLE(CacheManager);
|
SUYU_NON_MOVEABLE(CacheManager);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct AccessRange {
|
struct AccessRange {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -57,8 +57,8 @@ struct HierarchicalIntegrityVerificationSizeSet {
|
||||||
static_assert(std::is_trivial_v<HierarchicalIntegrityVerificationSizeSet>);
|
static_assert(std::is_trivial_v<HierarchicalIntegrityVerificationSizeSet>);
|
||||||
|
|
||||||
class HierarchicalIntegrityVerificationStorage : public IReadOnlyStorage {
|
class HierarchicalIntegrityVerificationStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(HierarchicalIntegrityVerificationStorage);
|
SUYU_NON_COPYABLE(HierarchicalIntegrityVerificationStorage);
|
||||||
YUZU_NON_MOVEABLE(HierarchicalIntegrityVerificationStorage);
|
SUYU_NON_MOVEABLE(HierarchicalIntegrityVerificationStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using GenerateRandomFunction = void (*)(void* dst, size_t size);
|
using GenerateRandomFunction = void (*)(void* dst, size_t size);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -12,8 +12,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class HierarchicalSha256Storage : public IReadOnlyStorage {
|
class HierarchicalSha256Storage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(HierarchicalSha256Storage);
|
SUYU_NON_COPYABLE(HierarchicalSha256Storage);
|
||||||
YUZU_NON_MOVEABLE(HierarchicalSha256Storage);
|
SUYU_NON_MOVEABLE(HierarchicalSha256Storage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr s32 LayerCount = 3;
|
static constexpr s32 LayerCount = 3;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class IndirectStorage : public IReadOnlyStorage {
|
class IndirectStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(IndirectStorage);
|
SUYU_NON_COPYABLE(IndirectStorage);
|
||||||
YUZU_NON_MOVEABLE(IndirectStorage);
|
SUYU_NON_MOVEABLE(IndirectStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr s32 StorageCount = 2;
|
static constexpr s32 StorageCount = 2;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -11,8 +11,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class IntegrityVerificationStorage : public IReadOnlyStorage {
|
class IntegrityVerificationStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(IntegrityVerificationStorage);
|
SUYU_NON_COPYABLE(IntegrityVerificationStorage);
|
||||||
YUZU_NON_MOVEABLE(IntegrityVerificationStorage);
|
SUYU_NON_MOVEABLE(IntegrityVerificationStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr s64 HashSize = 256 / 8;
|
static constexpr s64 HashSize = 256 / 8;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -8,8 +8,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class MemoryResourceBufferHoldStorage : public IStorage {
|
class MemoryResourceBufferHoldStorage : public IStorage {
|
||||||
YUZU_NON_COPYABLE(MemoryResourceBufferHoldStorage);
|
SUYU_NON_COPYABLE(MemoryResourceBufferHoldStorage);
|
||||||
YUZU_NON_MOVEABLE(MemoryResourceBufferHoldStorage);
|
SUYU_NON_MOVEABLE(MemoryResourceBufferHoldStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MemoryResourceBufferHoldStorage(VirtualFile storage, size_t buffer_size)
|
MemoryResourceBufferHoldStorage(VirtualFile storage, size_t buffer_size)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include "core/file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.h"
|
#include "core/file_sys/fssystem/fssystem_aes_ctr_counter_extended_storage.h"
|
||||||
|
@ -28,8 +28,8 @@ constexpr inline s32 IntegrityDataCacheCountForMeta = 16;
|
||||||
constexpr inline s32 IntegrityHashCacheCountForMeta = 2;
|
constexpr inline s32 IntegrityHashCacheCountForMeta = 2;
|
||||||
|
|
||||||
class SharedNcaBodyStorage : public IReadOnlyStorage {
|
class SharedNcaBodyStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(SharedNcaBodyStorage);
|
SUYU_NON_COPYABLE(SharedNcaBodyStorage);
|
||||||
YUZU_NON_MOVEABLE(SharedNcaBodyStorage);
|
SUYU_NON_MOVEABLE(SharedNcaBodyStorage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VirtualFile m_storage;
|
VirtualFile m_storage;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -88,8 +88,8 @@ constexpr inline s32 GetKeyTypeValue(u8 key_index, u8 key_generation) {
|
||||||
}
|
}
|
||||||
|
|
||||||
class NcaReader {
|
class NcaReader {
|
||||||
YUZU_NON_COPYABLE(NcaReader);
|
SUYU_NON_COPYABLE(NcaReader);
|
||||||
YUZU_NON_MOVEABLE(NcaReader);
|
SUYU_NON_MOVEABLE(NcaReader);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NcaReader();
|
NcaReader();
|
||||||
|
@ -154,8 +154,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class NcaFsHeaderReader {
|
class NcaFsHeaderReader {
|
||||||
YUZU_NON_COPYABLE(NcaFsHeaderReader);
|
SUYU_NON_COPYABLE(NcaFsHeaderReader);
|
||||||
YUZU_NON_MOVEABLE(NcaFsHeaderReader);
|
SUYU_NON_MOVEABLE(NcaFsHeaderReader);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NcaFsHeaderReader() : m_fs_index(-1) {
|
NcaFsHeaderReader() : m_fs_index(-1) {
|
||||||
|
@ -207,8 +207,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class NcaFileSystemDriver {
|
class NcaFileSystemDriver {
|
||||||
YUZU_NON_COPYABLE(NcaFileSystemDriver);
|
SUYU_NON_COPYABLE(NcaFileSystemDriver);
|
||||||
YUZU_NON_MOVEABLE(NcaFileSystemDriver);
|
SUYU_NON_MOVEABLE(NcaFileSystemDriver);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
struct StorageContext {
|
struct StorageContext {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -16,7 +16,7 @@ constexpr inline size_t BufferPoolAlignment = 4_KiB;
|
||||||
constexpr inline size_t BufferPoolWorkSize = 320;
|
constexpr inline size_t BufferPoolWorkSize = 320;
|
||||||
|
|
||||||
class PooledBuffer {
|
class PooledBuffer {
|
||||||
YUZU_NON_COPYABLE(PooledBuffer);
|
SUYU_NON_COPYABLE(PooledBuffer);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor/Destructor.
|
// Constructor/Destructor.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -8,8 +8,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class SparseStorage : public IndirectStorage {
|
class SparseStorage : public IndirectStorage {
|
||||||
YUZU_NON_COPYABLE(SparseStorage);
|
SUYU_NON_COPYABLE(SparseStorage);
|
||||||
YUZU_NON_MOVEABLE(SparseStorage);
|
SUYU_NON_MOVEABLE(SparseStorage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
class ZeroStorage : public IReadOnlyStorage {
|
class ZeroStorage : public IReadOnlyStorage {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -8,8 +8,8 @@
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
|
||||||
class RegionSwitchStorage : public IReadOnlyStorage {
|
class RegionSwitchStorage : public IReadOnlyStorage {
|
||||||
YUZU_NON_COPYABLE(RegionSwitchStorage);
|
SUYU_NON_COPYABLE(RegionSwitchStorage);
|
||||||
YUZU_NON_MOVEABLE(RegionSwitchStorage);
|
SUYU_NON_MOVEABLE(RegionSwitchStorage);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
struct Region {
|
struct Region {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -30,8 +30,8 @@ enum class VfsEntryType {
|
||||||
// functionality, they will need to override.
|
// functionality, they will need to override.
|
||||||
class VfsFilesystem {
|
class VfsFilesystem {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(VfsFilesystem);
|
SUYU_NON_COPYABLE(VfsFilesystem);
|
||||||
YUZU_NON_MOVEABLE(VfsFilesystem);
|
SUYU_NON_MOVEABLE(VfsFilesystem);
|
||||||
|
|
||||||
explicit VfsFilesystem(VirtualDir root);
|
explicit VfsFilesystem(VirtualDir root);
|
||||||
virtual ~VfsFilesystem();
|
virtual ~VfsFilesystem();
|
||||||
|
@ -81,8 +81,8 @@ protected:
|
||||||
// A class representing a file in an abstract filesystem.
|
// A class representing a file in an abstract filesystem.
|
||||||
class VfsFile {
|
class VfsFile {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(VfsFile);
|
SUYU_NON_COPYABLE(VfsFile);
|
||||||
YUZU_NON_MOVEABLE(VfsFile);
|
SUYU_NON_MOVEABLE(VfsFile);
|
||||||
|
|
||||||
VfsFile() = default;
|
VfsFile() = default;
|
||||||
virtual ~VfsFile();
|
virtual ~VfsFile();
|
||||||
|
@ -184,8 +184,8 @@ public:
|
||||||
// A class representing a directory in an abstract filesystem.
|
// A class representing a directory in an abstract filesystem.
|
||||||
class VfsDirectory {
|
class VfsDirectory {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(VfsDirectory);
|
SUYU_NON_COPYABLE(VfsDirectory);
|
||||||
YUZU_NON_MOVEABLE(VfsDirectory);
|
SUYU_NON_MOVEABLE(VfsDirectory);
|
||||||
|
|
||||||
VfsDirectory() = default;
|
VfsDirectory() = default;
|
||||||
virtual ~VfsDirectory();
|
virtual ~VfsDirectory();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -27,8 +27,8 @@ private:
|
||||||
static constexpr inline ClassTokenType ClassToken() { return ::Kernel::ClassToken<CLASS>; } \
|
static constexpr inline ClassTokenType ClassToken() { return ::Kernel::ClassToken<CLASS>; } \
|
||||||
\
|
\
|
||||||
public: \
|
public: \
|
||||||
YUZU_NON_COPYABLE(CLASS); \
|
SUYU_NON_COPYABLE(CLASS); \
|
||||||
YUZU_NON_MOVEABLE(CLASS); \
|
SUYU_NON_MOVEABLE(CLASS); \
|
||||||
\
|
\
|
||||||
using BaseClass = BASE_CLASS; \
|
using BaseClass = BASE_CLASS; \
|
||||||
static constexpr TypeObj GetStaticTypeObj() { \
|
static constexpr TypeObj GetStaticTypeObj() { \
|
||||||
|
@ -211,7 +211,7 @@ private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class KScopedAutoObject {
|
class KScopedAutoObject {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(KScopedAutoObject);
|
SUYU_NON_COPYABLE(KScopedAutoObject);
|
||||||
|
|
||||||
constexpr KScopedAutoObject() = default;
|
constexpr KScopedAutoObject() = default;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -16,8 +16,8 @@ class KProcess;
|
||||||
|
|
||||||
class KAutoObjectWithListContainer {
|
class KAutoObjectWithListContainer {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(KAutoObjectWithListContainer);
|
SUYU_NON_COPYABLE(KAutoObjectWithListContainer);
|
||||||
YUZU_NON_MOVEABLE(KAutoObjectWithListContainer);
|
SUYU_NON_MOVEABLE(KAutoObjectWithListContainer);
|
||||||
|
|
||||||
using ListType = boost::intrusive::rbtree<KAutoObjectWithList>;
|
using ListType = boost::intrusive::rbtree<KAutoObjectWithList>;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -12,8 +12,8 @@ namespace Kernel {
|
||||||
|
|
||||||
template <typename T, bool ClearNode = false>
|
template <typename T, bool ClearNode = false>
|
||||||
class KDynamicResourceManager {
|
class KDynamicResourceManager {
|
||||||
YUZU_NON_COPYABLE(KDynamicResourceManager);
|
SUYU_NON_COPYABLE(KDynamicResourceManager);
|
||||||
YUZU_NON_MOVEABLE(KDynamicResourceManager);
|
SUYU_NON_MOVEABLE(KDynamicResourceManager);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using DynamicSlabType = KDynamicSlabHeap<T, ClearNode>;
|
using DynamicSlabType = KDynamicSlabHeap<T, ClearNode>;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -13,8 +13,8 @@ namespace Kernel {
|
||||||
|
|
||||||
template <typename T, bool ClearNode = false>
|
template <typename T, bool ClearNode = false>
|
||||||
class KDynamicSlabHeap : protected impl::KSlabHeapImpl {
|
class KDynamicSlabHeap : protected impl::KSlabHeapImpl {
|
||||||
YUZU_NON_COPYABLE(KDynamicSlabHeap);
|
SUYU_NON_COPYABLE(KDynamicSlabHeap);
|
||||||
YUZU_NON_MOVEABLE(KDynamicSlabHeap);
|
SUYU_NON_MOVEABLE(KDynamicSlabHeap);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
constexpr KDynamicSlabHeap() = default;
|
constexpr KDynamicSlabHeap() = default;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -21,8 +21,8 @@ namespace Kernel {
|
||||||
class KernelCore;
|
class KernelCore;
|
||||||
|
|
||||||
class KHandleTable {
|
class KHandleTable {
|
||||||
YUZU_NON_COPYABLE(KHandleTable);
|
SUYU_NON_COPYABLE(KHandleTable);
|
||||||
YUZU_NON_MOVEABLE(KHandleTable);
|
SUYU_NON_MOVEABLE(KHandleTable);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static constexpr size_t MaxTableSize = 1024;
|
static constexpr size_t MaxTableSize = 1024;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -17,8 +17,8 @@ class KMemoryRegion final : public Common::IntrusiveRedBlackTreeBaseNode<KMemory
|
||||||
friend class KMemoryRegionTree;
|
friend class KMemoryRegionTree;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(KMemoryRegion);
|
SUYU_NON_COPYABLE(KMemoryRegion);
|
||||||
YUZU_NON_MOVEABLE(KMemoryRegion);
|
SUYU_NON_MOVEABLE(KMemoryRegion);
|
||||||
|
|
||||||
constexpr KMemoryRegion() = default;
|
constexpr KMemoryRegion() = default;
|
||||||
constexpr KMemoryRegion(u64 address, u64 last_address)
|
constexpr KMemoryRegion(u64 address, u64 last_address)
|
||||||
|
@ -123,8 +123,8 @@ private:
|
||||||
Common::IntrusiveRedBlackTreeBaseTraits<KMemoryRegion>::TreeType<KMemoryRegion>;
|
Common::IntrusiveRedBlackTreeBaseTraits<KMemoryRegion>::TreeType<KMemoryRegion>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(KMemoryRegionTree);
|
SUYU_NON_COPYABLE(KMemoryRegionTree);
|
||||||
YUZU_NON_MOVEABLE(KMemoryRegionTree);
|
SUYU_NON_MOVEABLE(KMemoryRegionTree);
|
||||||
|
|
||||||
using value_type = TreeType::value_type;
|
using value_type = TreeType::value_type;
|
||||||
using size_type = TreeType::size_type;
|
using size_type = TreeType::size_type;
|
||||||
|
@ -327,8 +327,8 @@ private:
|
||||||
|
|
||||||
class KMemoryRegionAllocator final {
|
class KMemoryRegionAllocator final {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(KMemoryRegionAllocator);
|
SUYU_NON_COPYABLE(KMemoryRegionAllocator);
|
||||||
YUZU_NON_MOVEABLE(KMemoryRegionAllocator);
|
SUYU_NON_MOVEABLE(KMemoryRegionAllocator);
|
||||||
|
|
||||||
static constexpr size_t MaxMemoryRegions = 200;
|
static constexpr size_t MaxMemoryRegions = 200;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include "common/scope_exit.h"
|
#include "common/scope_exit.h"
|
||||||
|
@ -14,8 +14,8 @@ namespace Kernel {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class KScopedLightLockPair {
|
class KScopedLightLockPair {
|
||||||
YUZU_NON_COPYABLE(KScopedLightLockPair);
|
SUYU_NON_COPYABLE(KScopedLightLockPair);
|
||||||
YUZU_NON_MOVEABLE(KScopedLightLockPair);
|
SUYU_NON_MOVEABLE(KScopedLightLockPair);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
KLightLock* m_lower;
|
KLightLock* m_lower;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -49,8 +49,8 @@ class KResourceLimit;
|
||||||
class KSystemResource;
|
class KSystemResource;
|
||||||
|
|
||||||
class KPageTableBase {
|
class KPageTableBase {
|
||||||
YUZU_NON_COPYABLE(KPageTableBase);
|
SUYU_NON_COPYABLE(KPageTableBase);
|
||||||
YUZU_NON_MOVEABLE(KPageTableBase);
|
SUYU_NON_MOVEABLE(KPageTableBase);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using TraversalEntry = Common::PageTable::TraversalEntry;
|
using TraversalEntry = Common::PageTable::TraversalEntry;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -33,8 +33,8 @@ class KScopedSchedulerLockAndSleep;
|
||||||
|
|
||||||
class KScheduler final {
|
class KScheduler final {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(KScheduler);
|
SUYU_NON_COPYABLE(KScheduler);
|
||||||
YUZU_NON_MOVEABLE(KScheduler);
|
SUYU_NON_MOVEABLE(KScheduler);
|
||||||
|
|
||||||
using LockType = KAbstractSchedulerLock<KScheduler>;
|
using LockType = KAbstractSchedulerLock<KScheduler>;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -18,8 +18,8 @@ class KernelCore;
|
||||||
namespace impl {
|
namespace impl {
|
||||||
|
|
||||||
class KSlabHeapImpl {
|
class KSlabHeapImpl {
|
||||||
YUZU_NON_COPYABLE(KSlabHeapImpl);
|
SUYU_NON_COPYABLE(KSlabHeapImpl);
|
||||||
YUZU_NON_MOVEABLE(KSlabHeapImpl);
|
SUYU_NON_MOVEABLE(KSlabHeapImpl);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
struct Node {
|
struct Node {
|
||||||
|
@ -72,8 +72,8 @@ private:
|
||||||
|
|
||||||
template <bool SupportDynamicExpansion>
|
template <bool SupportDynamicExpansion>
|
||||||
class KSlabHeapBase : protected impl::KSlabHeapImpl {
|
class KSlabHeapBase : protected impl::KSlabHeapImpl {
|
||||||
YUZU_NON_COPYABLE(KSlabHeapBase);
|
SUYU_NON_COPYABLE(KSlabHeapBase);
|
||||||
YUZU_NON_MOVEABLE(KSlabHeapBase);
|
SUYU_NON_MOVEABLE(KSlabHeapBase);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
size_t m_obj_size{};
|
size_t m_obj_size{};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -14,8 +14,8 @@ class KSpinLock {
|
||||||
public:
|
public:
|
||||||
explicit KSpinLock() = default;
|
explicit KSpinLock() = default;
|
||||||
|
|
||||||
YUZU_NON_COPYABLE(KSpinLock);
|
SUYU_NON_COPYABLE(KSpinLock);
|
||||||
YUZU_NON_MOVEABLE(KSpinLock);
|
SUYU_NON_MOVEABLE(KSpinLock);
|
||||||
|
|
||||||
void Lock();
|
void Lock();
|
||||||
void Unlock();
|
void Unlock();
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -26,8 +26,8 @@ public:
|
||||||
PhysicalCore(KernelCore& kernel, std::size_t core_index);
|
PhysicalCore(KernelCore& kernel, std::size_t core_index);
|
||||||
~PhysicalCore();
|
~PhysicalCore();
|
||||||
|
|
||||||
YUZU_NON_COPYABLE(PhysicalCore);
|
SUYU_NON_COPYABLE(PhysicalCore);
|
||||||
YUZU_NON_MOVEABLE(PhysicalCore);
|
SUYU_NON_MOVEABLE(PhysicalCore);
|
||||||
|
|
||||||
// Execute guest code running on the given thread.
|
// Execute guest code running on the given thread.
|
||||||
void RunThread(KThread* thread);
|
void RunThread(KThread* thread);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
// SPDX-FileCopyrightText: 2014 Citra Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -298,8 +298,8 @@ private:
|
||||||
namespace ResultImpl {
|
namespace ResultImpl {
|
||||||
template <auto EvaluateResult, class F>
|
template <auto EvaluateResult, class F>
|
||||||
class ScopedResultGuard {
|
class ScopedResultGuard {
|
||||||
YUZU_NON_COPYABLE(ScopedResultGuard);
|
SUYU_NON_COPYABLE(ScopedResultGuard);
|
||||||
YUZU_NON_MOVEABLE(ScopedResultGuard);
|
SUYU_NON_MOVEABLE(ScopedResultGuard);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Result& m_ref;
|
Result& m_ref;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -36,7 +36,7 @@ namespace Service::Account {
|
||||||
constexpr std::size_t THUMBNAIL_SIZE = 0x24000;
|
constexpr std::size_t THUMBNAIL_SIZE = 0x24000;
|
||||||
|
|
||||||
static std::filesystem::path GetImagePath(const Common::UUID& uuid) {
|
static std::filesystem::path GetImagePath(const Common::UUID& uuid) {
|
||||||
return Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) /
|
return Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) /
|
||||||
fmt::format("system/save/8000000000000010/su/avators/{}.jpg", uuid.FormattedString());
|
fmt::format("system/save/8000000000000010/su/avators/{}.jpg", uuid.FormattedString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
@ -377,7 +377,7 @@ bool ProfileManager::SetProfileBaseAndData(Common::UUID uuid, const ProfileBase&
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileManager::ParseUserSaveFile() {
|
void ProfileManager::ParseUserSaveFile() {
|
||||||
const auto save_path(FS::GetYuzuPath(FS::YuzuPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
|
const auto save_path(FS::GetSuyuPath(FS::SuyuPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
|
||||||
"profiles.dat");
|
"profiles.dat");
|
||||||
const FS::IOFile save(save_path, FS::FileAccessMode::Read, FS::FileType::BinaryFile);
|
const FS::IOFile save(save_path, FS::FileAccessMode::Read, FS::FileType::BinaryFile);
|
||||||
|
|
||||||
|
@ -429,12 +429,12 @@ void ProfileManager::WriteUserSaveFile() {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto raw_path(FS::GetYuzuPath(FS::YuzuPath::NANDDir) / "system/save/8000000000000010");
|
const auto raw_path(FS::GetSuyuPath(FS::SuyuPath::NANDDir) / "system/save/8000000000000010");
|
||||||
if (FS::IsFile(raw_path) && !FS::RemoveFile(raw_path)) {
|
if (FS::IsFile(raw_path) && !FS::RemoveFile(raw_path)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto save_path(FS::GetYuzuPath(FS::YuzuPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
|
const auto save_path(FS::GetSuyuPath(FS::SuyuPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
|
||||||
"profiles.dat");
|
"profiles.dat");
|
||||||
|
|
||||||
if (!FS::CreateParentDirs(save_path)) {
|
if (!FS::CreateParentDirs(save_path)) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include "common/assert.h"
|
#include "common/assert.h"
|
||||||
|
@ -155,7 +155,7 @@ void ExtractSharedFonts(Core::System& system) {
|
||||||
"FontNintendoExtended2.ttf",
|
"FontNintendoExtended2.ttf",
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto fonts_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) / "fonts";
|
const auto fonts_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::CacheDir) / "fonts";
|
||||||
|
|
||||||
for (std::size_t i = 0; i < NS::SHARED_FONTS.size(); ++i) {
|
for (std::size_t i = 0; i < NS::SHARED_FONTS.size(); ++i) {
|
||||||
const auto font_file_path = fonts_dir / DECRYPTED_SHARED_FONTS[i];
|
const auto font_file_path = fonts_dir / DECRYPTED_SHARED_FONTS[i];
|
||||||
|
@ -415,7 +415,7 @@ void WebBrowser::InitializeOffline() {
|
||||||
"system_data",
|
"system_data",
|
||||||
};
|
};
|
||||||
|
|
||||||
offline_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::CacheDir) /
|
offline_cache_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::CacheDir) /
|
||||||
fmt::format("offline_web_applet_{}/{:016X}",
|
fmt::format("offline_web_applet_{}/{:016X}",
|
||||||
RESOURCE_TYPES[static_cast<u32>(document_kind) - 1], title_id);
|
RESOURCE_TYPES[static_cast<u32>(document_kind) - 1], title_id);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -303,7 +303,7 @@ void AlbumManager::FindScreenshots() {
|
||||||
album_files.clear();
|
album_files.clear();
|
||||||
|
|
||||||
// TODO: Swap this with a blocking operation.
|
// TODO: Swap this with a blocking operation.
|
||||||
const auto screenshots_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ScreenshotsDir);
|
const auto screenshots_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::ScreenshotsDir);
|
||||||
Common::FS::IterateDirEntries(
|
Common::FS::IterateDirEntries(
|
||||||
screenshots_dir,
|
screenshots_dir,
|
||||||
[this](const std::filesystem::path& full_path) {
|
[this](const std::filesystem::path& full_path) {
|
||||||
|
@ -438,7 +438,7 @@ static void PNGToMemory(void* context, void* data, int len) {
|
||||||
Result AlbumManager::SaveImage(ApplicationAlbumEntry& out_entry, std::span<const u8> image,
|
Result AlbumManager::SaveImage(ApplicationAlbumEntry& out_entry, std::span<const u8> image,
|
||||||
u64 title_id, const AlbumFileDateTime& date) const {
|
u64 title_id, const AlbumFileDateTime& date) const {
|
||||||
const auto screenshot_path =
|
const auto screenshot_path =
|
||||||
Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir);
|
Common::FS::GetSuyuPathString(Common::FS::SuyuPath::ScreenshotsDir);
|
||||||
const std::string formatted_date =
|
const std::string formatted_date =
|
||||||
fmt::format("{:04}-{:02}-{:02}_{:02}-{:02}-{:02}-{:03}", date.year, date.month, date.day,
|
fmt::format("{:04}-{:02}-{:02}_{:02}-{:02}-{:02}-{:03}", date.year, date.month, date.day,
|
||||||
date.hour, date.minute, date.second, 0);
|
date.hour, date.minute, date.second, 0);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
@ -346,12 +346,12 @@ std::shared_ptr<SaveDataController> FileSystemController::OpenSaveDataController
|
||||||
|
|
||||||
std::shared_ptr<FileSys::SaveDataFactory> FileSystemController::CreateSaveDataFactory(
|
std::shared_ptr<FileSys::SaveDataFactory> FileSystemController::CreateSaveDataFactory(
|
||||||
ProgramId program_id) {
|
ProgramId program_id) {
|
||||||
using YuzuPath = Common::FS::YuzuPath;
|
using SuyuPath = Common::FS::SuyuPath;
|
||||||
const auto rw_mode = FileSys::OpenMode::ReadWrite;
|
const auto rw_mode = FileSys::OpenMode::ReadWrite;
|
||||||
|
|
||||||
auto vfs = system.GetFilesystem();
|
auto vfs = system.GetFilesystem();
|
||||||
const auto nand_directory =
|
const auto nand_directory =
|
||||||
vfs->OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::NANDDir), rw_mode);
|
vfs->OpenDirectory(Common::FS::GetSuyuPathString(SuyuPath::NANDDir), rw_mode);
|
||||||
return std::make_shared<FileSys::SaveDataFactory>(system, program_id,
|
return std::make_shared<FileSys::SaveDataFactory>(system, program_id,
|
||||||
std::move(nand_directory));
|
std::move(nand_directory));
|
||||||
}
|
}
|
||||||
|
@ -683,20 +683,20 @@ void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool ove
|
||||||
sdmc_factory = nullptr;
|
sdmc_factory = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
using YuzuPath = Common::FS::YuzuPath;
|
using SuyuPath = Common::FS::SuyuPath;
|
||||||
const auto sdmc_dir_path = Common::FS::GetYuzuPath(YuzuPath::SDMCDir);
|
const auto sdmc_dir_path = Common::FS::GetSuyuPath(SuyuPath::SDMCDir);
|
||||||
const auto sdmc_load_dir_path = sdmc_dir_path / "atmosphere/contents";
|
const auto sdmc_load_dir_path = sdmc_dir_path / "atmosphere/contents";
|
||||||
const auto rw_mode = FileSys::OpenMode::ReadWrite;
|
const auto rw_mode = FileSys::OpenMode::ReadWrite;
|
||||||
|
|
||||||
auto nand_directory =
|
auto nand_directory =
|
||||||
vfs.OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::NANDDir), rw_mode);
|
vfs.OpenDirectory(Common::FS::GetSuyuPathString(SuyuPath::NANDDir), rw_mode);
|
||||||
auto sd_directory = vfs.OpenDirectory(Common::FS::PathToUTF8String(sdmc_dir_path), rw_mode);
|
auto sd_directory = vfs.OpenDirectory(Common::FS::PathToUTF8String(sdmc_dir_path), rw_mode);
|
||||||
auto load_directory = vfs.OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::LoadDir),
|
auto load_directory = vfs.OpenDirectory(Common::FS::GetSuyuPathString(SuyuPath::LoadDir),
|
||||||
FileSys::OpenMode::Read);
|
FileSys::OpenMode::Read);
|
||||||
auto sd_load_directory = vfs.OpenDirectory(Common::FS::PathToUTF8String(sdmc_load_dir_path),
|
auto sd_load_directory = vfs.OpenDirectory(Common::FS::PathToUTF8String(sdmc_load_dir_path),
|
||||||
FileSys::OpenMode::Read);
|
FileSys::OpenMode::Read);
|
||||||
auto dump_directory =
|
auto dump_directory =
|
||||||
vfs.OpenDirectory(Common::FS::GetYuzuPathString(YuzuPath::DumpDir), rw_mode);
|
vfs.OpenDirectory(Common::FS::GetSuyuPathString(SuyuPath::DumpDir), rw_mode);
|
||||||
|
|
||||||
if (bis_factory == nullptr) {
|
if (bis_factory == nullptr) {
|
||||||
bis_factory = std::make_unique<FileSys::BISFactory>(
|
bis_factory = std::make_unique<FileSys::BISFactory>(
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -11,7 +11,7 @@ namespace Service::JIT {
|
||||||
|
|
||||||
class CodeMemory {
|
class CodeMemory {
|
||||||
public:
|
public:
|
||||||
YUZU_NON_COPYABLE(CodeMemory);
|
SUYU_NON_COPYABLE(CodeMemory);
|
||||||
|
|
||||||
explicit CodeMemory() = default;
|
explicit CodeMemory() = default;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include "common/assert.h"
|
#include "common/assert.h"
|
||||||
|
@ -22,9 +22,9 @@ DatabaseManager::DatabaseManager() {}
|
||||||
Result DatabaseManager::MountSaveData() {
|
Result DatabaseManager::MountSaveData() {
|
||||||
if (!is_save_data_mounted) {
|
if (!is_save_data_mounted) {
|
||||||
system_save_dir =
|
system_save_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000030";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000030";
|
||||||
if (is_test_db) {
|
if (is_test_db) {
|
||||||
system_save_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) /
|
system_save_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) /
|
||||||
"system/save/8000000000000031";
|
"system/save/8000000000000031";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2017 socram8888/amiitool
|
// SPDX-FileCopyrightText: Copyright 2017 socram8888/amiitool
|
||||||
|
@ -271,7 +271,7 @@ void Cipher(const DerivedKeys& keys, const NTAG215File& in_data, NTAG215File& ou
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LoadKeys(InternalKey& locked_secret, InternalKey& unfixed_info) {
|
bool LoadKeys(InternalKey& locked_secret, InternalKey& unfixed_info) {
|
||||||
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
const auto yuzu_keys_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::KeysDir);
|
||||||
|
|
||||||
const Common::FS::IOFile keys_file{yuzu_keys_dir / "key_retail.bin",
|
const Common::FS::IOFile keys_file{yuzu_keys_dir / "key_retail.bin",
|
||||||
Common::FS::FileAccessMode::Read,
|
Common::FS::FileAccessMode::Read,
|
||||||
|
@ -295,7 +295,7 @@ bool LoadKeys(InternalKey& locked_secret, InternalKey& unfixed_info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsKeyAvailable() {
|
bool IsKeyAvailable() {
|
||||||
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
const auto yuzu_keys_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::KeysDir);
|
||||||
return Common::FS::Exists(yuzu_keys_dir / "key_retail.bin");
|
return Common::FS::Exists(yuzu_keys_dir / "key_retail.bin");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include "core/hle/service/glue/time/static.h"
|
#include "core/hle/service/glue/time/static.h"
|
||||||
|
@ -1261,7 +1261,7 @@ Result NfcDevice::BreakTag(NFP::BreakType break_type) {
|
||||||
Result NfcDevice::HasBackup(const UniqueSerialNumber& uid, std::size_t uuid_size) const {
|
Result NfcDevice::HasBackup(const UniqueSerialNumber& uid, std::size_t uuid_size) const {
|
||||||
ASSERT_MSG(uuid_size < sizeof(UniqueSerialNumber), "Invalid UUID size");
|
ASSERT_MSG(uuid_size < sizeof(UniqueSerialNumber), "Invalid UUID size");
|
||||||
constexpr auto backup_dir = "backup";
|
constexpr auto backup_dir = "backup";
|
||||||
const auto yuzu_amiibo_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::AmiiboDir);
|
const auto yuzu_amiibo_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::AmiiboDir);
|
||||||
const auto file_name =
|
const auto file_name =
|
||||||
fmt::format("{0:02x}.bin", fmt::join(uid.begin(), uid.begin() + uuid_size, ""));
|
fmt::format("{0:02x}.bin", fmt::join(uid.begin(), uid.begin() + uuid_size, ""));
|
||||||
|
|
||||||
|
@ -1282,7 +1282,7 @@ Result NfcDevice::ReadBackupData(const UniqueSerialNumber& uid, std::size_t uuid
|
||||||
std::span<u8> data) const {
|
std::span<u8> data) const {
|
||||||
ASSERT_MSG(uuid_size < sizeof(UniqueSerialNumber), "Invalid UUID size");
|
ASSERT_MSG(uuid_size < sizeof(UniqueSerialNumber), "Invalid UUID size");
|
||||||
constexpr auto backup_dir = "backup";
|
constexpr auto backup_dir = "backup";
|
||||||
const auto yuzu_amiibo_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::AmiiboDir);
|
const auto yuzu_amiibo_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::AmiiboDir);
|
||||||
const auto file_name =
|
const auto file_name =
|
||||||
fmt::format("{0:02x}.bin", fmt::join(uid.begin(), uid.begin() + uuid_size, ""));
|
fmt::format("{0:02x}.bin", fmt::join(uid.begin(), uid.begin() + uuid_size, ""));
|
||||||
|
|
||||||
|
@ -1313,7 +1313,7 @@ Result NfcDevice::WriteBackupData(const UniqueSerialNumber& uid, std::size_t uui
|
||||||
std::span<const u8> data) {
|
std::span<const u8> data) {
|
||||||
ASSERT_MSG(uuid_size < sizeof(UniqueSerialNumber), "Invalid UUID size");
|
ASSERT_MSG(uuid_size < sizeof(UniqueSerialNumber), "Invalid UUID size");
|
||||||
constexpr auto backup_dir = "backup";
|
constexpr auto backup_dir = "backup";
|
||||||
const auto yuzu_amiibo_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::AmiiboDir);
|
const auto yuzu_amiibo_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::AmiiboDir);
|
||||||
const auto file_name =
|
const auto file_name =
|
||||||
fmt::format("{0:02x}.bin", fmt::join(uid.begin(), uid.begin() + uuid_size, ""));
|
fmt::format("{0:02x}.bin", fmt::join(uid.begin(), uid.begin() + uuid_size, ""));
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
@ -1308,25 +1308,25 @@ Result ISystemSettingsServer::SetPanelCrcMode(s32 panel_crc_mode) {
|
||||||
|
|
||||||
void ISystemSettingsServer::SetupSettings() {
|
void ISystemSettingsServer::SetupSettings() {
|
||||||
auto system_dir =
|
auto system_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000050";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000050";
|
||||||
if (!LoadSettingsFile(system_dir, []() { return DefaultSystemSettings(); })) {
|
if (!LoadSettingsFile(system_dir, []() { return DefaultSystemSettings(); })) {
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto private_dir =
|
auto private_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000052";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000052";
|
||||||
if (!LoadSettingsFile(private_dir, []() { return DefaultPrivateSettings(); })) {
|
if (!LoadSettingsFile(private_dir, []() { return DefaultPrivateSettings(); })) {
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto device_dir =
|
auto device_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000053";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000053";
|
||||||
if (!LoadSettingsFile(device_dir, []() { return DefaultDeviceSettings(); })) {
|
if (!LoadSettingsFile(device_dir, []() { return DefaultDeviceSettings(); })) {
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto appln_dir =
|
auto appln_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000054";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000054";
|
||||||
if (!LoadSettingsFile(appln_dir, []() { return DefaultApplnSettings(); })) {
|
if (!LoadSettingsFile(appln_dir, []() { return DefaultApplnSettings(); })) {
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
}
|
}
|
||||||
|
@ -1334,25 +1334,25 @@ void ISystemSettingsServer::SetupSettings() {
|
||||||
|
|
||||||
void ISystemSettingsServer::StoreSettings() {
|
void ISystemSettingsServer::StoreSettings() {
|
||||||
auto system_dir =
|
auto system_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000050";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000050";
|
||||||
if (!StoreSettingsFile(system_dir, m_system_settings)) {
|
if (!StoreSettingsFile(system_dir, m_system_settings)) {
|
||||||
LOG_ERROR(Service_SET, "Failed to store System settings");
|
LOG_ERROR(Service_SET, "Failed to store System settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
auto private_dir =
|
auto private_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000052";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000052";
|
||||||
if (!StoreSettingsFile(private_dir, m_private_settings)) {
|
if (!StoreSettingsFile(private_dir, m_private_settings)) {
|
||||||
LOG_ERROR(Service_SET, "Failed to store Private settings");
|
LOG_ERROR(Service_SET, "Failed to store Private settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
auto device_dir =
|
auto device_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000053";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000053";
|
||||||
if (!StoreSettingsFile(device_dir, m_device_settings)) {
|
if (!StoreSettingsFile(device_dir, m_device_settings)) {
|
||||||
LOG_ERROR(Service_SET, "Failed to store Device settings");
|
LOG_ERROR(Service_SET, "Failed to store Device settings");
|
||||||
}
|
}
|
||||||
|
|
||||||
auto appln_dir =
|
auto appln_dir =
|
||||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir) / "system/save/8000000000000054";
|
Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir) / "system/save/8000000000000054";
|
||||||
if (!StoreSettingsFile(appln_dir, m_appln_settings)) {
|
if (!StoreSettingsFile(appln_dir, m_appln_settings)) {
|
||||||
LOG_ERROR(Service_SET, "Failed to store ApplLn settings");
|
LOG_ERROR(Service_SET, "Failed to store ApplLn settings");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
@ -23,7 +23,7 @@ template <typename T>
|
||||||
struct CFReleaser {
|
struct CFReleaser {
|
||||||
T ptr;
|
T ptr;
|
||||||
|
|
||||||
YUZU_NON_COPYABLE(CFReleaser);
|
SUYU_NON_COPYABLE(CFReleaser);
|
||||||
constexpr CFReleaser() : ptr(nullptr) {}
|
constexpr CFReleaser() : ptr(nullptr) {}
|
||||||
constexpr CFReleaser(T ptr) : ptr(ptr) {}
|
constexpr CFReleaser(T ptr) : ptr(ptr) {}
|
||||||
constexpr operator T() {
|
constexpr operator T() {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
#elif YUZU_UNIX
|
#elif SUYU_UNIX
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
@ -77,7 +77,7 @@ SOCKET GetInterruptSocket() {
|
||||||
sockaddr TranslateFromSockAddrIn(SockAddrIn input) {
|
sockaddr TranslateFromSockAddrIn(SockAddrIn input) {
|
||||||
sockaddr_in result;
|
sockaddr_in result;
|
||||||
|
|
||||||
#if YUZU_UNIX
|
#if SUYU_UNIX
|
||||||
result.sin_len = sizeof(result);
|
result.sin_len = sizeof(result);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ Errno TranslateNativeError(int e, CallType call_type = CallType::Other) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif YUZU_UNIX // ^ _WIN32 v YUZU_UNIX
|
#elif SUYU_UNIX // ^ _WIN32 v SUYU_UNIX
|
||||||
|
|
||||||
using SOCKET = int;
|
using SOCKET = int;
|
||||||
using WSAPOLLFD = pollfd;
|
using WSAPOLLFD = pollfd;
|
||||||
|
@ -835,7 +835,7 @@ std::pair<s32, Errno> Socket::Send(std::span<const u8> message, int flags) {
|
||||||
ASSERT(flags == 0);
|
ASSERT(flags == 0);
|
||||||
|
|
||||||
int native_flags = 0;
|
int native_flags = 0;
|
||||||
#if YUZU_UNIX
|
#if SUYU_UNIX
|
||||||
native_flags |= MSG_NOSIGNAL; // do not send us SIGPIPE
|
native_flags |= MSG_NOSIGNAL; // do not send us SIGPIPE
|
||||||
#endif
|
#endif
|
||||||
const auto result = send(fd, reinterpret_cast<const char*>(message.data()),
|
const auto result = send(fd, reinterpret_cast<const char*>(message.data()),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#elif YUZU_UNIX
|
#elif SUYU_UNIX
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ constexpr IPv4Address TranslateIPv4(in_addr addr) {
|
||||||
auto& bytes = addr.S_un.S_un_b;
|
auto& bytes = addr.S_un.S_un_b;
|
||||||
return IPv4Address{bytes.s_b1, bytes.s_b2, bytes.s_b3, bytes.s_b4};
|
return IPv4Address{bytes.s_b1, bytes.s_b2, bytes.s_b3, bytes.s_b4};
|
||||||
}
|
}
|
||||||
#elif YUZU_UNIX
|
#elif SUYU_UNIX
|
||||||
constexpr IPv4Address TranslateIPv4(in_addr addr) {
|
constexpr IPv4Address TranslateIPv4(in_addr addr) {
|
||||||
const u32 bytes = addr.s_addr;
|
const u32 bytes = addr.s_addr;
|
||||||
return IPv4Address{static_cast<u8>(bytes), static_cast<u8>(bytes >> 8),
|
return IPv4Address{static_cast<u8>(bytes), static_cast<u8>(bytes >> 8),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
#include "core/internal_network/socket_proxy.h"
|
#include "core/internal_network/socket_proxy.h"
|
||||||
#include "network/network.h"
|
#include "network/network.h"
|
||||||
|
|
||||||
#if YUZU_UNIX
|
#if SUYU_UNIX
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue