Merge branch 'dev' into 'alpha'
push dev to alpha See merge request suyu-emu/suyu!68
|
@ -3,6 +3,8 @@
|
|||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Modified by JuanCStar on 2024/03/06
|
||||
|
||||
. .ci/scripts/common/pre-upload.sh
|
||||
|
||||
APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
|
||||
|
@ -37,7 +39,7 @@ fi
|
|||
|
||||
# Don't let AppImageLauncher ask to integrate EA
|
||||
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
||||
echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop
|
||||
echo "X-AppImage-Integrate=false" >> AppDir/org.suyu_emu.suyu.desktop
|
||||
fi
|
||||
|
||||
if [ "${RELEASE_NAME}" = "mainline" ]; then
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# This file is a template, and might need editing before it works on your project.
|
||||
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
|
||||
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
|
||||
# it uses echo commands to simulate the pipeline execution.
|
||||
#
|
||||
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
|
||||
# Stages run in sequential order, but jobs within stages run in parallel.
|
||||
#
|
||||
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
|
||||
#
|
||||
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
|
||||
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
|
||||
#
|
||||
# To contribute improvements to CI/CD templates, please follow the Development guide at:
|
||||
# https://docs.gitlab.com/ee/development/cicd/templates.html
|
||||
# This specific template is located at:
|
||||
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
|
||||
|
||||
stages: # List of stages for jobs, and their order of execution
|
||||
- build
|
||||
|
||||
build-ubuntu: # This job runs in the build stage, which runs first.
|
||||
stage: build
|
||||
image: ubuntu:latest # Maybe replace with image with more required dependencies
|
||||
before_script:
|
||||
- apt update --yes
|
||||
- apt install --yes cmake gcc g++ git
|
||||
script:
|
||||
- echo "Compiling the code..."
|
||||
- git submodule update --init --recursive
|
||||
- ls -la
|
||||
# TODO: Add build instructions for linux
|
||||
- echo "Compile complete."
|
||||
|
||||
build-win:
|
||||
stage: build
|
||||
tags:
|
||||
- shared-windows
|
||||
- windows
|
||||
- windows-1809
|
||||
script:
|
||||
- echo "Compiling the code..."
|
||||
- dir
|
||||
# TODO: Add build instructions for windows
|
||||
- echo "Compile complete."
|
|
@ -9,15 +9,15 @@ Files: dist/english_plurals/*
|
|||
dist/qt_themes/*/icons/48x48/sd_card.png
|
||||
dist/qt_themes/*/icons/index.theme
|
||||
dist/qt_themes/default/style.qss
|
||||
Copyright: yuzu Emulator Project
|
||||
Copyright: suyu Emulator Project
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
Files: dist/qt_themes/default/icons/256x256/yuzu.png
|
||||
dist/yuzu.bmp
|
||||
dist/yuzu.icns
|
||||
dist/yuzu.ico
|
||||
dist/yuzu.svg
|
||||
Copyright: yuzu Emulator Project
|
||||
dist/suyu.ico
|
||||
dist/suyu.svg
|
||||
Copyright: suyu Emulator Project
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
Files: dist/qt_themes/qdarkstyle*/LICENSE.*
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Modified by JuanCStar on 2024/03/06
|
||||
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
project(yuzu)
|
||||
|
@ -126,7 +128,7 @@ if (YUZU_USE_BUNDLED_VCPKG)
|
|||
set(VCPKG_DOWNLOADS_PATH ${PROJECT_SOURCE_DIR}/externals/vcpkg/downloads)
|
||||
set(NASM_VERSION "2.16.01")
|
||||
set(NASM_DESTINATION_PATH ${VCPKG_DOWNLOADS_PATH}/nasm-${NASM_VERSION}-win64.zip)
|
||||
set(NASM_DOWNLOAD_URL "https://github.com/yuzu-mirror/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
|
||||
set(NASM_DOWNLOAD_URL "https://gitlab.com/suyu-emu/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
|
||||
|
||||
if (NOT EXISTS ${NASM_DESTINATION_PATH})
|
||||
file(DOWNLOAD ${NASM_DOWNLOAD_URL} ${NASM_DESTINATION_PATH} SHOW_PROGRESS STATUS NASM_STATUS)
|
||||
|
@ -620,7 +622,7 @@ if (NOT CLANG_FORMAT)
|
|||
message(STATUS "Clang format not found! Downloading...")
|
||||
set(CLANG_FORMAT "${PROJECT_BINARY_DIR}/externals/clang-format${CLANG_FORMAT_POSTFIX}.exe")
|
||||
file(DOWNLOAD
|
||||
https://github.com/yuzu-mirror/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
|
||||
https://gitlab.com/suyu-emu/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
|
||||
"${CLANG_FORMAT}" SHOW_PROGRESS
|
||||
STATUS DOWNLOAD_SUCCESS)
|
||||
if (NOT DOWNLOAD_SUCCESS EQUAL 0)
|
||||
|
@ -720,13 +722,13 @@ endif()
|
|||
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||
# https://www.freedesktop.org/software/appstream/docs/
|
||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||
install(FILES "dist/org.yuzu_emu.yuzu.desktop"
|
||||
install(FILES "dist/org.suyu_emu.suyu.desktop"
|
||||
DESTINATION "share/applications")
|
||||
install(FILES "dist/yuzu.svg"
|
||||
install(FILES "dist/suyu.svg"
|
||||
DESTINATION "share/icons/hicolor/scalable/apps"
|
||||
RENAME "org.yuzu_emu.yuzu.svg")
|
||||
install(FILES "dist/org.yuzu_emu.yuzu.xml"
|
||||
RENAME "org.suyu_emu.suyu.svg")
|
||||
install(FILES "dist/org.suyu_emu.suyu.xml"
|
||||
DESTINATION "share/mime/packages")
|
||||
install(FILES "dist/org.yuzu_emu.yuzu.metainfo.xml"
|
||||
install(FILES "dist/org.suyu_emu.suyu.metainfo.xml"
|
||||
DESTINATION "share/metainfo")
|
||||
endif()
|
||||
|
|
|
@ -3,21 +3,25 @@
|
|||
|
||||
function(copy_yuzu_Qt5_deps target_dir)
|
||||
include(WindowsCopyFiles)
|
||||
set(Qt5_BASE_PATH "${Qt5_DIR}/../../..")
|
||||
if (NOT EXISTS "${Qt5_BASE_PATH}/bin")
|
||||
set(Qt5_BASE_PATH "${Qt5_DIR}/../../qt5")
|
||||
endif()
|
||||
if (MSVC)
|
||||
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
||||
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
|
||||
set(Qt5_DLL_DIR "${Qt5_BASE_PATH}/bin")
|
||||
else()
|
||||
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/")
|
||||
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../lib/")
|
||||
set(Qt5_DLL_DIR "${Qt5_BASE_PATH}/lib/")
|
||||
endif()
|
||||
set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
|
||||
set(Qt5_PLATFORMTHEMES_DIR "${Qt5_DIR}/../../../plugins/platformthemes/")
|
||||
set(Qt5_PLATFORMINPUTCONTEXTS_DIR "${Qt5_DIR}/../../../plugins/platforminputcontexts/")
|
||||
set(Qt5_MEDIASERVICE_DIR "${Qt5_DIR}/../../../plugins/mediaservice/")
|
||||
set(Qt5_XCBGLINTEGRATIONS_DIR "${Qt5_DIR}/../../../plugins/xcbglintegrations/")
|
||||
set(Qt5_STYLES_DIR "${Qt5_DIR}/../../../plugins/styles/")
|
||||
set(Qt5_IMAGEFORMATS_DIR "${Qt5_DIR}/../../../plugins/imageformats/")
|
||||
set(Qt5_RESOURCES_DIR "${Qt5_DIR}/../../../resources/")
|
||||
set(Qt5_PLATFORMS_DIR "${Qt5_BASE_PATH}/plugins/platforms/")
|
||||
set(Qt5_PLATFORMTHEMES_DIR "${Qt5_BASE_PATH}/plugins/platformthemes/")
|
||||
set(Qt5_PLATFORMINPUTCONTEXTS_DIR "${Qt5_BASE_PATH}/plugins/platforminputcontexts/")
|
||||
set(Qt5_MEDIASERVICE_DIR "${Qt5_BASE_PATH}/plugins/mediaservice/")
|
||||
set(Qt5_XCBGLINTEGRATIONS_DIR "${Qt5_BASE_PATH}/plugins/xcbglintegrations/")
|
||||
set(Qt5_STYLES_DIR "${Qt5_BASE_PATH}/plugins/styles/")
|
||||
set(Qt5_IMAGEFORMATS_DIR "${Qt5_BASE_PATH}/plugins/imageformats/")
|
||||
set(Qt5_RESOURCES_DIR "${Qt5_BASE_PATH}/resources/")
|
||||
set(PLATFORMS ${DLL_DEST}plugins/platforms/)
|
||||
set(MEDIASERVICE ${DLL_DEST}mediaservice/)
|
||||
set(STYLES ${DLL_DEST}plugins/styles/)
|
||||
|
|
|
@ -3,4 +3,7 @@ SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
|||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
**The Contributor's Guide has moved to [the yuzu wiki](https://github.com/yuzu-emu/yuzu/wiki/Contributing).**
|
||||
Please check out the
|
||||
|
||||
* [Conributors's guide](https://gitlab.com/suyu2/suyu/-/wikis/Contributing).
|
||||
* [Merge request guidelines](https://gitlab.com/suyu-emu/suyu/-/wikis/Merge-requests)
|
||||
|
|
48
README.md
|
@ -3,41 +3,31 @@ SPDX-FileCopyrightText: 2024 suyu emulator project
|
|||
SPDX-License-Identifier: GPL v3
|
||||
-->
|
||||
|
||||
<h4>This project DOES NOT support piracy, you are required to source your own games and keys, we make no money off this project (mainly so that Nintendo won't sue us lol)</h4>
|
||||
**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.
|
||||
This repo is based on Yuzu EA 4176. Please contribute if you can!
|
||||
|
||||
We are in great need of developers, join our discord server at <a href="https://discord.gg/2gQRBp44KT">https://discord.gg/2gQRBp44KT</a>
|
||||
<hr />
|
||||
|
||||
This repo is created based on yuzu EA 4176. Please contribute
|
||||
|
||||
<h1 style="text-align:center;">
|
||||
<h1 align="center">
|
||||
<br>
|
||||
<a href=""><img src="https://cdn.discordapp.com/attachments/1214441121099419718/1214452770334056488/Suyu-Logo_V2.png?ex=65f92a47&is=65e6b547&hm=a1f174d70a5c106fec6a998c603e1158d8f3011a6c9ff91415b7c02afe9c0262&" alt="suyu" width="200"></a>
|
||||
<a href="https://gitlab.com/suyu-emu/suyu"><img src="dist/readme/suyu__Logo-Pill.svg" alt="suyu" height="128"></a>
|
||||
<br>
|
||||
<b>suyu</b>
|
||||
<br>
|
||||
</h1>
|
||||
|
||||
<h4 align="center"><b>suyu</b>, pronounced "sue-you" is the afterlife the world's most popular, open-source, Nintendo Switch emulator — started by the creators of <a href="https://citra-emu.org" target="_blank">Citra</a>.
|
||||
<h4 align="center"><b>suyu</b>, pronounced "sue-you" (wink wink) is the continuation of the world's most popular, open-source, Nintendo Switch emulator, yuzu.
|
||||
<br>
|
||||
It is written in C++ with portability in mind, and we actively maintain builds for Windows, Linux and Android.
|
||||
</h4>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://dev.azure.com/suyu-emu/suyu/">
|
||||
<img src="https://dev.azure.com/suyu-emu/suyu/_apis/build/status/suyu%20mainline?branchName=master"
|
||||
alt="Azure Mainline CI Build Status">
|
||||
</a>
|
||||
<a href="https://discord.com/invite/u77vRWY">
|
||||
<img src="https://img.shields.io/discord/398318088170242053?color=5865F2&label=suyu&logo=discord&logoColor=white"
|
||||
alt="Discord">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="#compatibility">Compatibility</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="#support">Support</a> |
|
||||
<a href="#license">License</a>
|
||||
|
@ -45,31 +35,27 @@ It is written in C++ with portability in mind, and we actively maintain builds f
|
|||
|
||||
## Status
|
||||
|
||||
We are trying to get the builds working. We are in need of developers. Join our discord to contribute.
|
||||
We are trying to get the builds working. We are in need of developers. Join our Discord to contribute.
|
||||
|
||||
**Note**: This README is a fork of the original project's README, most links are broken!
|
||||
|
||||
## Compatibility
|
||||
|
||||
W.I.P.
|
||||
|
||||
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://suyu-emu.org/game/).
|
||||
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-emu.org/) for the latest news on exciting features, monthly progress reports, and more!
|
||||
Check out our [website](https://suyu.dev) for the latest news on exciting features, monthly progress reports, and more!
|
||||
|
||||
## Development
|
||||
|
||||
W.I.P.
|
||||
|
||||
This project is completely free and open source, this project is made possible by many people who share the same interest.
|
||||
|
||||
Most of the development happens on GitHub. 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).
|
||||
You can also contact any of the developers on Discord in order to know about the current state of the emulator.
|
||||
|
||||
If you want to contribute to the user interface translation project, please check out the [suyu project on transifex](https://www.transifex.com/suyu-emulator/suyu). We centralize translation work there, and periodically upstream translations.
|
||||
|
||||
## Downloads
|
||||
|
||||
* __Windows__: [Legacy Artifacts](https://github.com/pineappleea/pineapple-src/releases)
|
||||
|
@ -77,14 +63,14 @@ If you want to contribute to the user interface translation project, please chec
|
|||
|
||||
## Building
|
||||
|
||||
* __Windows__: W.I.P.
|
||||
* __Linux__: W.I.P.
|
||||
* __Windows__: [Wiki page](https://gitlab.com/suyu-emu/suyu/-/wikis/Building-for-Windows)
|
||||
* __Linux__: [Wiki page](https://gitlab.com/suyu-emu/suyu/-/wikis/Building-for-Linux)
|
||||
|
||||
|
||||
|
||||
## 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 to contribute.
|
||||
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.
|
||||
|
||||
|
||||
## License
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=yuzu
|
||||
Name=suyu
|
||||
GenericName=Switch Emulator
|
||||
Comment=Nintendo Switch video game console emulator
|
||||
Icon=org.yuzu_emu.yuzu
|
||||
TryExec=yuzu
|
||||
Exec=yuzu %f
|
||||
Icon=org.suyu_emu.suyu
|
||||
TryExec=suyu
|
||||
Exec=suyu %f
|
||||
Categories=Game;Emulator;Qt;
|
||||
MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci;
|
||||
Keywords=Nintendo;Switch;
|
||||
StartupWMClass=yuzu
|
||||
StartupWMClass=suyu
|
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 yuzu Emulator Project
|
||||
SPDX-FileCopyrightText: 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
|
||||
<component type="desktop-application">
|
||||
<id>org.yuzu_emu.yuzu</id>
|
||||
<id>org.suyu_emu.suyu</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<name>yuzu</name>
|
||||
<name>suyu</name>
|
||||
<summary>Nintendo Switch emulator</summary>
|
||||
<description>
|
||||
<p>yuzu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.</p>
|
||||
<p>suyu is the world's most popular, open-source, Nintendo Switch emulator — started by the creators of Citra.</p>
|
||||
<p>The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.</p>
|
||||
<p>For a full list of games yuzu support, please visit our Compatibility page.</p>
|
||||
<p>For a full list of games suyu support, please visit our Compatibility page.</p>
|
||||
<p>Check out our website for the latest news on exciting features, monthly progress reports, and more!</p>
|
||||
</description>
|
||||
<categories>
|
||||
|
@ -24,19 +24,19 @@ SPDX-License-Identifier: CC0-1.0
|
|||
<keyword>switch</keyword>
|
||||
<keyword>emulator</keyword>
|
||||
</keywords>
|
||||
<url type="homepage">https://yuzu-emu.org/</url>
|
||||
<url type="bugtracker">https://github.com/yuzu-emu/yuzu/issues</url>
|
||||
<url type="faq">https://yuzu-emu.org/wiki/faq/</url>
|
||||
<url type="help">https://yuzu-emu.org/wiki/home/</url>
|
||||
<url type="donation">https://yuzu-emu.org/donate/</url>
|
||||
<url type="translate">https://www.transifex.com/projects/p/yuzu</url>
|
||||
<url type="homepage">https://suyu-emu.org/</url>
|
||||
<url type="bugtracker">https://gitlab.com/suyu-emu/suyu/issues</url>
|
||||
<url type="faq">https://suyu-emu.org/wiki/faq/</url>
|
||||
<url type="help">https://suyu-emu.org/wiki/home/</url>
|
||||
<url type="donation">https://suyu-emu.org/donate/</url>
|
||||
<url type="translate">https://www.transifex.com/projects/p/suyu</url>
|
||||
<url type="contact">https://community.citra-emu.org/</url>
|
||||
<url type="vcs-browser">https://github.com/yuzu-emu/yuzu</url>
|
||||
<url type="contribute">https://yuzu-emu.org/wiki/contributing/</url>
|
||||
<launchable type="desktop-id">org.yuzu_emu.yuzu.desktop</launchable>
|
||||
<url type="vcs-browser">https://gitlab.com/suyu-emu/suyu</url>
|
||||
<url type="contribute">https://suyu-emu.org/wiki/contributing/</url>
|
||||
<launchable type="desktop-id">org.suyu_emu.suyu.desktop</launchable>
|
||||
<provides>
|
||||
<binary>yuzu</binary>
|
||||
<binary>yuzu-cmd</binary>
|
||||
<binary>suyu</binary>
|
||||
<binary>suyu-cmd</binary>
|
||||
</provides>
|
||||
<supports>
|
||||
<control>pointing</control>
|
||||
|
@ -50,13 +50,13 @@ SPDX-License-Identifier: CC0-1.0
|
|||
<memory>16384</memory>
|
||||
</recommends>
|
||||
<project_license>GPL-3.0-or-later</project_license>
|
||||
<developer_name>yuzu Emulator Team</developer_name>
|
||||
<developer_name>suyu Emulator Team</developer_name>
|
||||
<content_rating type="oars-1.0"/>
|
||||
<screenshots>
|
||||
<screenshot type="default"><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/001-Super%20Mario%20Odyssey%20.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/004-The%20Legend%20of%20Zelda%20Skyward%20Sword%20HD.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/007-Pokemon%20Sword.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/010-Hyrule%20Warriors%20Age%20of%20Calamity.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/yuzu-emu/yuzu-emu.github.io/master/images/screenshots/039-Pok%C3%A9mon%20Mystery%20Dungeon%20Rescue%20Team%20DX.png.png.png</image></screenshot>
|
||||
<screenshot type="default"><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/001-Super%20Mario%20Odyssey%20.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/004-The%20Legend%20of%20Zelda%20Skyward%20Sword%20HD.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/007-Pokemon%20Sword.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/010-Hyrule%20Warriors%20Age%20of%20Calamity.png</image></screenshot>
|
||||
<screenshot><image>https://raw.githubusercontent.com/suyu-emu/suyu-emu.github.io/master/images/screenshots/039-Pok%C3%A9mon%20Mystery%20Dungeon%20Rescue%20Team%20DX.png.png.png</image></screenshot>
|
||||
</screenshots>
|
||||
</component>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
|
@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||
<mime-type type="application/x-nx-nro">
|
||||
<comment>Nintendo Switch homebrew executable</comment>
|
||||
<acronym>NRO</acronym>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<icon name="org.suyu_emu.suyu"/>
|
||||
<glob pattern="*.nro"/>
|
||||
<magic><match value="NRO" type="string" offset="16"/></magic>
|
||||
</mime-type>
|
||||
|
@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||
<mime-type type="application/x-nx-nso">
|
||||
<comment>Nintendo Switch homebrew executable</comment>
|
||||
<acronym>NSO</acronym>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<icon name="org.suyu_emu.suyu"/>
|
||||
<glob pattern="*.nso"/>
|
||||
<magic><match value="NSO" type="string" offset="0"/></magic>
|
||||
</mime-type>
|
||||
|
@ -25,7 +25,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||
<mime-type type="application/x-nx-nsp">
|
||||
<comment>Nintendo Switch Package</comment>
|
||||
<acronym>NSP</acronym>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<icon name="org.suyu_emu.suyu"/>
|
||||
<glob pattern="*.nsp"/>
|
||||
<magic><match value="PFS" type="string" offset="0"/></magic>
|
||||
</mime-type>
|
||||
|
@ -33,7 +33,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|||
<mime-type type="application/x-nx-xci">
|
||||
<comment>Nintendo Switch Card Image</comment>
|
||||
<acronym>XCI</acronym>
|
||||
<icon name="org.yuzu_emu.yuzu"/>
|
||||
<icon name="org.suyu_emu.suyu"/>
|
||||
<glob pattern="*.xci"/>
|
||||
</mime-type>
|
||||
</mime-info>
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,9 @@
|
|||
<svg width="2421" height="912" viewBox="0 0 2421 912" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="2421" height="912" rx="456" fill="black"/>
|
||||
<path d="M1981.76 562.559C2048.26 562.559 2085.29 540.974 2097.74 494.87H2098.58C2098.58 516.024 2097.74 543.446 2096.9 558.402H2150.07V353.155H2096.9V437.082C2096.9 489.051 2052 518.972 1999.23 518.972C1940.61 518.972 1921.48 495.702 1921.48 457.882V353.155H1868.34V469.104C1868.34 518.559 1901.97 562.559 1981.76 562.559Z" fill="white"/>
|
||||
<path d="M1622.72 649C1673.41 649 1696.68 626.588 1729.92 562.978L1838.78 353.155H1784.35L1702.08 511.453H1701.25L1608.59 353.155H1546.68L1667.59 558.402H1677.98C1656.37 599.173 1642.66 607.493 1616.07 607.493C1601.52 607.493 1588.23 604.581 1581.58 602.501V643.181C1589.47 645.68 1605.68 649 1622.72 649Z" fill="white"/>
|
||||
<path d="M1346.74 562.559C1413.26 562.559 1450.26 540.974 1462.73 494.87H1463.56C1463.56 516.024 1462.73 543.446 1461.9 558.402H1515.04V353.155H1461.9V437.082C1461.9 489.051 1417 518.972 1364.21 518.972C1305.59 518.972 1286.47 495.702 1286.47 457.882V353.155H1233.33V469.104C1233.33 518.559 1266.95 562.559 1346.74 562.559Z" fill="white"/>
|
||||
<path d="M1064.99 562.559C1171.79 562.559 1195.46 526.453 1195.46 494.857C1195.46 475.317 1186.74 458.688 1167.64 449.957C1149.78 442.474 1122.77 439.98 1086.19 438.316C1053.76 436.655 1027.15 436.655 1012.6 432.913C999.299 430.001 995.142 424.182 995.142 415.867C995.142 396.326 1018.01 386.765 1066.65 386.765C1122.77 386.765 1132.75 402.147 1133.17 422.518H1183.42C1183.42 383.861 1162.66 349 1064.99 349C986.424 349 942 376.805 942 418.361C942 435.407 948.643 451.205 964.004 459.52C979.781 468.25 1010.94 473.24 1053.35 474.485C1079.95 475.317 1111.13 476.149 1125.68 479.059C1138.99 481.971 1142.31 488.206 1142.31 496.521C1142.31 512.735 1128.18 524.791 1064.99 524.791C1000.96 524.791 992.651 507.329 992.238 490.286H942C942 521.05 958.606 562.559 1064.99 562.559Z" fill="white"/>
|
||||
<path d="M614.634 671.208C627.342 648.401 634.583 622.138 634.583 594.194C634.583 506.657 563.529 435.612 475.992 435.612C410.969 435.612 358.192 382.835 358.192 317.806C358.192 252.776 410.969 200 475.992 200C617.313 200 732 314.688 732 456C732 546.235 685.227 625.613 614.634 671.208ZM475.992 252.761C464.032 252.761 454.316 262.476 454.316 274.443C454.316 286.408 464.032 296.125 475.992 296.125C487.969 296.125 497.673 286.408 497.673 274.443C497.673 262.476 487.969 252.761 475.992 252.761ZM519.355 296.125C507.391 296.125 497.673 305.839 497.673 317.806C497.673 329.772 507.391 339.488 519.355 339.488C531.332 339.488 541.036 329.772 541.036 317.806C541.036 305.839 531.332 296.125 519.355 296.125ZM432.635 296.125C420.669 296.125 410.955 305.839 410.955 317.806C410.955 329.772 420.669 339.488 432.635 339.488C444.601 339.488 454.316 329.772 454.316 317.806C454.316 305.839 444.601 296.125 432.635 296.125ZM475.992 339.488C464.032 339.488 454.316 349.203 454.316 361.168C454.316 373.135 464.032 382.85 475.992 382.85C487.969 382.85 497.673 373.135 497.673 361.168C497.673 349.203 487.969 339.488 475.992 339.488Z" fill="#FF3554"/>
|
||||
<path d="M337.361 240.792C324.657 263.599 317.417 289.862 317.417 317.806C317.417 405.343 388.461 476.388 475.992 476.388C541.022 476.388 593.805 529.165 593.805 594.194C593.805 659.222 541.022 712 475.992 712C334.687 712 220 597.312 220 456C220 365.766 266.764 286.385 337.361 240.792ZM475.992 529.149C464.032 529.149 454.316 538.865 454.316 550.831C454.316 562.798 464.032 572.512 475.992 572.512C487.969 572.512 497.673 562.798 497.673 550.831C497.673 538.865 487.969 529.149 475.992 529.149ZM519.355 572.512C507.391 572.512 497.673 582.227 497.673 594.194C497.673 606.161 507.391 615.876 519.355 615.876C531.332 615.876 541.036 606.161 541.036 594.194C541.036 582.227 531.332 572.512 519.355 572.512ZM475.992 615.876C464.032 615.876 454.316 625.59 454.316 637.557C454.316 649.523 464.032 659.239 475.992 659.239C487.969 659.239 497.673 649.523 497.673 637.557C497.673 625.59 487.969 615.876 475.992 615.876ZM432.634 572.512C420.669 572.512 410.954 582.227 410.954 594.194C410.954 606.161 420.669 615.876 432.634 615.876C444.601 615.876 454.316 606.161 454.316 594.194C454.316 582.227 444.601 572.512 432.634 572.512Z" fill="#3A99FF"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 9.9 KiB |
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2020 yuzu Emulator Project
|
||||
SPDX-FileCopyrightText: 2020 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M394.633 471.208C407.342 448.401 414.583 422.138 414.583 394.194C414.583 306.657 343.529 235.612 255.992 235.612C190.969 235.612 138.192 182.835 138.192 117.806C138.192 52.7762 190.969 0 255.992 0C397.313 0 512 114.688 512 256C512 346.235 465.227 425.613 394.633 471.208ZM255.992 52.7613C244.032 52.7613 234.316 62.4761 234.316 74.4429C234.316 86.4084 244.032 96.1245 255.992 96.1245C267.969 96.1245 277.673 86.4084 277.673 74.4429C277.673 62.4761 267.969 52.7613 255.992 52.7613ZM299.355 96.1245C287.391 96.1245 277.673 105.839 277.673 117.806C277.673 129.772 287.391 139.488 299.355 139.488C311.332 139.488 321.036 129.772 321.036 117.806C321.036 105.839 311.332 96.1245 299.355 96.1245ZM212.634 96.1245C200.669 96.1245 190.954 105.839 190.954 117.806C190.954 129.772 200.669 139.488 212.634 139.488C224.601 139.488 234.316 129.772 234.316 117.806C234.316 105.839 224.601 96.1245 212.634 96.1245ZM255.992 139.488C244.032 139.488 234.316 149.203 234.316 161.168C234.316 173.135 244.032 182.85 255.992 182.85C267.969 182.85 277.673 173.135 277.673 161.168C277.673 149.203 267.969 139.488 255.992 139.488Z" fill="#FF3554"/>
|
||||
<path d="M117.361 40.7917C104.657 63.5994 97.4173 89.8623 97.4173 117.806C97.4173 205.343 168.461 276.388 255.992 276.388C321.022 276.388 373.805 329.165 373.805 394.194C373.805 459.222 321.022 512 255.992 512C114.687 512 0 397.312 0 256C0 165.766 46.7638 86.3854 117.361 40.7917ZM255.992 329.149C244.032 329.149 234.316 338.865 234.316 350.831C234.316 362.798 244.032 372.512 255.992 372.512C267.969 372.512 277.673 362.798 277.673 350.831C277.673 338.865 267.969 329.149 255.992 329.149ZM299.355 372.512C287.391 372.512 277.673 382.227 277.673 394.194C277.673 406.161 287.391 415.876 299.355 415.876C311.332 415.876 321.036 406.161 321.036 394.194C321.036 382.227 311.332 372.512 299.355 372.512ZM255.992 415.876C244.032 415.876 234.316 425.59 234.316 437.557C234.316 449.523 244.032 459.239 255.992 459.239C267.969 459.239 277.673 449.523 277.673 437.557C277.673 425.59 267.969 415.876 255.992 415.876ZM212.635 372.512C200.669 372.512 190.955 382.227 190.955 394.194C190.955 406.161 200.669 415.876 212.635 415.876C224.601 415.876 234.316 406.161 234.316 394.194C234.316 382.227 224.601 372.512 212.635 372.512Z" fill="#3A99FF"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 23 KiB |
|
@ -1 +1,55 @@
|
|||
<svg id="svg815" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 614.4 682.67"><defs><style>.cls-1{fill:none;}.cls-2{clip-path:url(#clip-path);}.cls-3{fill:#ff3c28;}.cls-4{fill:#0ab9e6;}</style><clipPath id="clip-path"><rect class="cls-1" x="-43" y="-46.67" width="699.6" height="777.33"/></clipPath></defs><title>Artboard 1</title><g id="g823"><g id="right"><g class="cls-2"><g id="g827"><g id="g833"><path id="path835" class="cls-3" d="M340.81,138V682.08c150.26,0,272.06-121.81,272.06-272.06S491.07,138,340.81,138M394,197.55a219.06,219.06,0,0,1,0,424.94V197.55"/></g></g></g></g><g id="left"><g class="cls-2"><g id="g839"><g id="g845"><path id="path847" class="cls-4" d="M272.79,1.92C122.53,1.92.73,123.73.73,274s121.8,272.07,272.06,272.07ZM219.65,61.51v425A219,219,0,0,1,118,119.18,217.51,217.51,0,0,1,219.65,61.51"/></g></g></g></g></g></svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="512.0px"
|
||||
height="512.0px"
|
||||
viewBox="0 0 512.0 512.0"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
sodipodi:docname="yuzu.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview532"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="true"
|
||||
inkscape:zoom="4.7521782"
|
||||
inkscape:cx="300.91464"
|
||||
inkscape:cy="437.37838"
|
||||
inkscape:window-width="2048"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid538" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs527" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
d="m 394.62535,471.3827 c 12.708,-22.807 19.949,-49.07 19.949,-77.014 0,-87.537 -71.054,-158.582 -158.591,-158.582 -65.023,0 -117.8,-52.777 -117.8,-117.806 0,-65.029789 52.777,-117.8059899 117.8,-117.8059899 141.321,0 256.008,114.6879899 256.008,255.9999899 0,90.235 -46.773,169.613 -117.366,215.208 z M 255.98335,52.936011 c -11.96,0 -21.676,9.7148 -21.676,21.6816 0,11.9655 9.716,21.681597 21.676,21.681597 11.977,0 21.681,-9.716097 21.681,-21.681597 0,-11.9668 -9.704,-21.6816 -21.681,-21.6816 z m 43.363,43.363197 c -11.964,0 -21.682,9.714492 -21.682,21.681492 0,11.966 9.718,21.682 21.682,21.682 11.977,0 21.681,-9.716 21.681,-21.682 0,-11.967 -9.704,-21.681492 -21.681,-21.681492 z m -86.72,0 c -11.966,0 -21.68,9.714492 -21.68,21.681492 0,11.966 9.714,21.682 21.68,21.682 11.966,0 21.681,-9.716 21.681,-21.682 0,-11.967 -9.715,-21.681492 -21.681,-21.681492 z m 43.357,43.363492 c -11.96,0 -21.676,9.715 -21.676,21.68 0,11.967 9.716,21.682 21.676,21.682 11.977,0 21.681,-9.715 21.681,-21.682 0,-11.965 -9.704,-21.68 -21.681,-21.68 z"
|
||||
fill="#ff3554"
|
||||
id="path60" />
|
||||
<path
|
||||
d="m 117.35235,40.966411 c -12.704,22.8077 -19.943696,49.070597 -19.943696,77.014289 0,87.537 71.043696,158.582 158.574696,158.582 65.03,0 117.813,52.777 117.813,117.806 0,65.028 -52.783,117.806 -117.813,117.806 -141.305,0 -255.9919924,-114.688 -255.9919924,-256 0,-90.234 46.7638004,-169.614589 117.3609924,-215.208289 z m 138.631,288.357289 c -11.96,0 -21.676,9.716 -21.676,21.682 0,11.967 9.716,21.681 21.676,21.681 11.977,0 21.681,-9.714 21.681,-21.681 0,-11.966 -9.704,-21.682 -21.681,-21.682 z m 43.363,43.363 c -11.964,0 -21.682,9.715 -21.682,21.682 0,11.967 9.718,21.682 21.682,21.682 11.977,0 21.681,-9.715 21.681,-21.682 0,-11.967 -9.704,-21.682 -21.681,-21.682 z m -43.363,43.364 c -11.96,0 -21.676,9.714 -21.676,21.681 0,11.966 9.716,21.682 21.676,21.682 11.977,0 21.681,-9.716 21.681,-21.682 0,-11.967 -9.704,-21.681 -21.681,-21.681 z m -43.358,-43.364 c -11.965,0 -21.68,9.715 -21.68,21.682 0,11.967 9.715,21.682 21.68,21.682 11.967,0 21.682,-9.715 21.682,-21.682 0,-11.967 -9.715,-21.682 -21.682,-21.682 z"
|
||||
fill="#3a99ff"
|
||||
id="path62" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 889 B After Width: | Height: | Size: 3.4 KiB |
|
@ -609,7 +609,7 @@ struct Values {
|
|||
Category::Network};
|
||||
|
||||
// WebService
|
||||
Setting<bool> enable_telemetry{linkage, true, "enable_telemetry", Category::WebService};
|
||||
Setting<bool> enable_telemetry{linkage, false, "enable_telemetry", Category::WebService};
|
||||
Setting<std::string> web_api_url{linkage, "https://api.yuzu-emu.org", "web_api_url",
|
||||
Category::WebService};
|
||||
Setting<std::string> yuzu_username{linkage, std::string(), "yuzu_username",
|
||||
|
|
|
@ -648,17 +648,13 @@ void KeyManager::ReloadKeys() {
|
|||
|
||||
if (Settings::values.use_dev_keys) {
|
||||
dev_mode = true;
|
||||
LoadFromFile(yuzu_keys_dir / "dev.keys_autogenerated", false);
|
||||
LoadFromFile(yuzu_keys_dir / "dev.keys", false);
|
||||
} else {
|
||||
dev_mode = false;
|
||||
LoadFromFile(yuzu_keys_dir / "prod.keys_autogenerated", false);
|
||||
LoadFromFile(yuzu_keys_dir / "prod.keys", false);
|
||||
}
|
||||
|
||||
LoadFromFile(yuzu_keys_dir / "title.keys_autogenerated", true);
|
||||
LoadFromFile(yuzu_keys_dir / "title.keys", true);
|
||||
LoadFromFile(yuzu_keys_dir / "console.keys_autogenerated", false);
|
||||
LoadFromFile(yuzu_keys_dir / "console.keys", false);
|
||||
}
|
||||
|
||||
|
@ -844,40 +840,6 @@ Key256 KeyManager::GetBISKey(u8 partition_id) const {
|
|||
return out;
|
||||
}
|
||||
|
||||
template <size_t Size>
|
||||
void KeyManager::WriteKeyToFile(KeyCategory category, std::string_view keyname,
|
||||
const std::array<u8, Size>& key) {
|
||||
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
||||
|
||||
std::string filename = "title.keys_autogenerated";
|
||||
|
||||
if (category == KeyCategory::Standard) {
|
||||
filename = dev_mode ? "dev.keys_autogenerated" : "prod.keys_autogenerated";
|
||||
} else if (category == KeyCategory::Console) {
|
||||
filename = "console.keys_autogenerated";
|
||||
}
|
||||
|
||||
const auto path = yuzu_keys_dir / filename;
|
||||
const auto add_info_text = !Common::FS::Exists(path);
|
||||
|
||||
Common::FS::IOFile file{path, Common::FS::FileAccessMode::Append,
|
||||
Common::FS::FileType::TextFile};
|
||||
|
||||
if (!file.IsOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (add_info_text) {
|
||||
void(file.WriteString(
|
||||
"# This file is autogenerated by Yuzu\n"
|
||||
"# It serves to store keys that were automatically generated from the normal keys\n"
|
||||
"# If you are experiencing issues involving keys, it may help to delete this file\n"));
|
||||
}
|
||||
|
||||
void(file.WriteString(fmt::format("\n{} = {}", keyname, Common::HexToString(key))));
|
||||
LoadFromFile(path, category == KeyCategory::Title);
|
||||
}
|
||||
|
||||
void KeyManager::SetKey(S128KeyType id, Key128 key, u64 field1, u64 field2) {
|
||||
if (s128_keys.find({id, field1, field2}) != s128_keys.end() || key == Key128{}) {
|
||||
return;
|
||||
|
@ -886,46 +848,6 @@ void KeyManager::SetKey(S128KeyType id, Key128 key, u64 field1, u64 field2) {
|
|||
Key128 rights_id;
|
||||
std::memcpy(rights_id.data(), &field2, sizeof(u64));
|
||||
std::memcpy(rights_id.data() + sizeof(u64), &field1, sizeof(u64));
|
||||
WriteKeyToFile(KeyCategory::Title, Common::HexToString(rights_id), key);
|
||||
}
|
||||
|
||||
auto category = KeyCategory::Standard;
|
||||
if (id == S128KeyType::Keyblob || id == S128KeyType::KeyblobMAC || id == S128KeyType::TSEC ||
|
||||
id == S128KeyType::SecureBoot || id == S128KeyType::SDSeed || id == S128KeyType::BIS) {
|
||||
category = KeyCategory::Console;
|
||||
}
|
||||
|
||||
const auto iter2 = std::find_if(
|
||||
s128_file_id.begin(), s128_file_id.end(), [&id, &field1, &field2](const auto& elem) {
|
||||
return std::tie(elem.second.type, elem.second.field1, elem.second.field2) ==
|
||||
std::tie(id, field1, field2);
|
||||
});
|
||||
if (iter2 != s128_file_id.end()) {
|
||||
WriteKeyToFile(category, iter2->first, key);
|
||||
}
|
||||
|
||||
// Variable cases
|
||||
if (id == S128KeyType::KeyArea) {
|
||||
static constexpr std::array<const char*, 3> kak_names = {
|
||||
"key_area_key_application_{:02X}",
|
||||
"key_area_key_ocean_{:02X}",
|
||||
"key_area_key_system_{:02X}",
|
||||
};
|
||||
WriteKeyToFile(category, fmt::format(fmt::runtime(kak_names.at(field2)), field1), key);
|
||||
} else if (id == S128KeyType::Master) {
|
||||
WriteKeyToFile(category, fmt::format("master_key_{:02X}", field1), key);
|
||||
} else if (id == S128KeyType::Package1) {
|
||||
WriteKeyToFile(category, fmt::format("package1_key_{:02X}", field1), key);
|
||||
} else if (id == S128KeyType::Package2) {
|
||||
WriteKeyToFile(category, fmt::format("package2_key_{:02X}", field1), key);
|
||||
} else if (id == S128KeyType::Titlekek) {
|
||||
WriteKeyToFile(category, fmt::format("titlekek_{:02X}", field1), key);
|
||||
} else if (id == S128KeyType::Keyblob) {
|
||||
WriteKeyToFile(category, fmt::format("keyblob_key_{:02X}", field1), key);
|
||||
} else if (id == S128KeyType::KeyblobMAC) {
|
||||
WriteKeyToFile(category, fmt::format("keyblob_mac_key_{:02X}", field1), key);
|
||||
} else if (id == S128KeyType::Source && field1 == static_cast<u64>(SourceKeyType::Keyblob)) {
|
||||
WriteKeyToFile(category, fmt::format("keyblob_key_source_{:02X}", field2), key);
|
||||
}
|
||||
|
||||
s128_keys[{id, field1, field2}] = key;
|
||||
|
@ -935,14 +857,6 @@ void KeyManager::SetKey(S256KeyType id, Key256 key, u64 field1, u64 field2) {
|
|||
if (s256_keys.find({id, field1, field2}) != s256_keys.end() || key == Key256{}) {
|
||||
return;
|
||||
}
|
||||
const auto iter = std::find_if(
|
||||
s256_file_id.begin(), s256_file_id.end(), [&id, &field1, &field2](const auto& elem) {
|
||||
return std::tie(elem.second.type, elem.second.field1, elem.second.field2) ==
|
||||
std::tie(id, field1, field2);
|
||||
});
|
||||
if (iter != s256_file_id.end()) {
|
||||
WriteKeyToFile(KeyCategory::Standard, iter->first, key);
|
||||
}
|
||||
s256_keys[{id, field1, field2}] = key;
|
||||
}
|
||||
|
||||
|
@ -1052,8 +966,6 @@ void KeyManager::DeriveBase() {
|
|||
// Decrypt keyblob
|
||||
if (keyblobs[i] == std::array<u8, 0x90>{}) {
|
||||
keyblobs[i] = DecryptKeyblob(encrypted_keyblobs[i], key);
|
||||
WriteKeyToFile<0x90>(KeyCategory::Console, fmt::format("keyblob_{:02X}", i),
|
||||
keyblobs[i]);
|
||||
}
|
||||
|
||||
Key128 package1;
|
||||
|
@ -1183,7 +1095,6 @@ void KeyManager::DeriveETicket(PartitionDataManager& data,
|
|||
data.DecryptProdInfo(GetBISKey(0));
|
||||
|
||||
eticket_extended_kek = data.GetETicketExtendedKek();
|
||||
WriteKeyToFile(KeyCategory::Console, "eticket_extended_kek", eticket_extended_kek);
|
||||
DeriveETicketRSAKey();
|
||||
PopulateTickets();
|
||||
}
|
||||
|
@ -1261,8 +1172,6 @@ void KeyManager::PopulateFromPartitionData(PartitionDataManager& data) {
|
|||
continue;
|
||||
}
|
||||
encrypted_keyblobs[i] = data.GetEncryptedKeyblob(i);
|
||||
WriteKeyToFile<0xB0>(KeyCategory::Console, fmt::format("encrypted_keyblob_{:02X}", i),
|
||||
encrypted_keyblobs[i]);
|
||||
}
|
||||
|
||||
SetKeyWrapped(S128KeyType::Source, data.GetPackage2KeySource(),
|
||||
|
|
|
@ -314,10 +314,6 @@ private:
|
|||
bool dev_mode;
|
||||
void LoadFromFile(const std::filesystem::path& file_path, bool is_title_keys);
|
||||
|
||||
template <size_t Size>
|
||||
void WriteKeyToFile(KeyCategory category, std::string_view keyname,
|
||||
const std::array<u8, Size>& key);
|
||||
|
||||
void DeriveGeneralPurposeKeys(std::size_t crypto_revision);
|
||||
|
||||
void DeriveETicketRSAKey();
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// SPDX-FileCopyrightText: 2017 Citra Emulator Project
|
||||
// SPDX-FileCopyrightText: 2017 Citra Emulator Project & 2024 suyu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// Modified by JuanCStar on 2024/03/06
|
||||
|
||||
#include "winresrc.h"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -9,7 +11,7 @@
|
|||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
YUZU_ICON ICON "../../dist/yuzu.ico"
|
||||
SUYU_ICON ICON "../../dist/suyu.ico"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -17,4 +19,4 @@ YUZU_ICON ICON "../../dist/yuzu.ico"
|
|||
// RT_MANIFEST
|
||||
//
|
||||
|
||||
0 RT_MANIFEST "../../dist/yuzu.manifest"
|
||||
0 RT_MANIFEST "../../dist/suyu.manifest"
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 Suyu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Modified by JuanCStar on 2024/03/06
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
@ -229,8 +231,8 @@ add_executable(yuzu
|
|||
vk_device_info.h
|
||||
compatdb.cpp
|
||||
compatdb.h
|
||||
yuzu.qrc
|
||||
yuzu.rc
|
||||
suyu.qrc
|
||||
suyu.rc
|
||||
)
|
||||
|
||||
if (YUZU_CRASH_DUMPS)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// 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
|
||||
|
||||
// Modified by JuanCStar on 2024/03/06
|
||||
|
||||
#include <QIcon>
|
||||
#include <fmt/format.h>
|
||||
#include "common/scm_rev.h"
|
||||
|
@ -13,19 +15,19 @@ AboutDialog::AboutDialog(QWidget* parent)
|
|||
const auto description = std::string(Common::g_scm_desc);
|
||||
const auto build_id = std::string(Common::g_build_id);
|
||||
|
||||
const auto yuzu_build = fmt::format("yuzu Development Build | {}-{}", branch_name, description);
|
||||
const auto suyu_build = fmt::format("suyu Development Build | {}-{}", branch_name, description);
|
||||
const auto override_build =
|
||||
fmt::format(fmt::runtime(std::string(Common::g_title_bar_format_idle)), build_id);
|
||||
const auto yuzu_build_version = override_build.empty() ? yuzu_build : override_build;
|
||||
const auto suyu_build_version = override_build.empty() ? suyu_build : override_build;
|
||||
|
||||
ui->setupUi(this);
|
||||
// Try and request the icon from Qt theme (Linux?)
|
||||
const QIcon yuzu_logo = QIcon::fromTheme(QStringLiteral("org.yuzu_emu.yuzu"));
|
||||
if (!yuzu_logo.isNull()) {
|
||||
ui->labelLogo->setPixmap(yuzu_logo.pixmap(200));
|
||||
const QIcon suyu_logo = QIcon::fromTheme(QStringLiteral("org.suyu_emu.suyu"));
|
||||
if (!suyu_logo.isNull()) {
|
||||
ui->labelLogo->setPixmap(suyu_logo.pixmap(200));
|
||||
}
|
||||
ui->labelBuildInfo->setText(
|
||||
ui->labelBuildInfo->text().arg(QString::fromStdString(yuzu_build_version),
|
||||
ui->labelBuildInfo->text().arg(QString::fromStdString(suyu_build_version),
|
||||
QString::fromUtf8(Common::g_build_date).left(10)));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// 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
|
||||
|
||||
// Modified by JuanCStar on 2024/03/06
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
<ui version="4.0">
|
||||
<class>ConfigureWeb</class>
|
||||
<widget class="QWidget" name="ConfigureWeb">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// Modified by JuanCStar on 2024/03/06
|
||||
|
||||
#include <cinttypes>
|
||||
#include <clocale>
|
||||
#include <cmath>
|
||||
|
@ -427,9 +429,6 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
|
|||
game_list->LoadCompatibilityList();
|
||||
game_list->PopulateAsync(UISettings::values.game_dirs);
|
||||
|
||||
// Show one-time "callout" messages to the user
|
||||
ShowTelemetryCallout();
|
||||
|
||||
// make sure menubar has the arrow cursor instead of inheriting from this
|
||||
ui->menubar->setCursor(QCursor());
|
||||
statusBar()->setCursor(QCursor());
|
||||
|
@ -4551,10 +4550,10 @@ void GMainWindow::UpdateWindowTitle(std::string_view title_name, std::string_vie
|
|||
const auto description = std::string(Common::g_scm_desc);
|
||||
const auto build_id = std::string(Common::g_build_id);
|
||||
|
||||
const auto yuzu_title = fmt::format("yuzu | {}-{}", branch_name, description);
|
||||
const auto suyu_title = fmt::format("suyu | {}-{}", branch_name, description);
|
||||
const auto override_title =
|
||||
fmt::format(fmt::runtime(std::string(Common::g_title_bar_format_idle)), build_id);
|
||||
const auto window_title = override_title.empty() ? yuzu_title : override_title;
|
||||
const auto window_title = override_title.empty() ? suyu_title : override_title;
|
||||
|
||||
if (title_name.empty()) {
|
||||
setWindowTitle(QString::fromStdString(window_title));
|
||||
|
@ -5303,7 +5302,7 @@ int main(int argc, char* argv[]) {
|
|||
|
||||
// Fix the Wayland appId. This needs to match the name of the .desktop file without the .desktop
|
||||
// suffix.
|
||||
QGuiApplication::setDesktopFileName(QStringLiteral("org.yuzu_emu.yuzu"));
|
||||
QGuiApplication::setDesktopFileName(QStringLiteral("org.suyu_emu.suyu"));
|
||||
#endif
|
||||
|
||||
SetHighDPIAttributes();
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>yuzu</string>
|
||||
<string>suyu</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="yuzu.qrc">
|
||||
<normaloff>:/img/yuzu.ico</normaloff>:/img/yuzu.ico</iconset>
|
||||
<iconset resource="suyu.qrc">
|
||||
<normaloff>:/img/suyu.ico</normaloff>:/img/suyu.ico</iconset>
|
||||
</property>
|
||||
<property name="tabShape">
|
||||
<enum>QTabWidget::Rounded</enum>
|
||||
|
@ -477,7 +477,7 @@
|
|||
</action>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="yuzu.qrc"/>
|
||||
<include location="suyu.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<!--
|
||||
SPDX-FileCopyrightText: 2021 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
Modified by JuanCStar on 2024/03/06
|
||||
-->
|
||||
|
||||
<RCC>
|
||||
<qresource prefix="/img">
|
||||
<file alias="suyu.ico">../../dist/suyu.ico</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -1,6 +1,8 @@
|
|||
// SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
// SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// Modified by JuanCStar on 2024/03/06
|
||||
|
||||
#include "winresrc.h"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -11,7 +13,7 @@
|
|||
// remains consistent on all systems.
|
||||
// QT requires that the default application icon is named IDI_ICON1
|
||||
|
||||
IDI_ICON1 ICON "../../dist/yuzu.ico"
|
||||
IDI_ICON1 ICON "../../dist/suyu.ico"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -19,4 +21,4 @@ IDI_ICON1 ICON "../../dist/yuzu.ico"
|
|||
// RT_MANIFEST
|
||||
//
|
||||
|
||||
0 RT_MANIFEST "../../dist/yuzu.manifest"
|
||||
0 RT_MANIFEST "../../dist/suyu.manifest"
|
|
@ -1,10 +0,0 @@
|
|||
<!--
|
||||
SPDX-FileCopyrightText: 2021 yuzu Emulator Project
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
<RCC>
|
||||
<qresource prefix="/img">
|
||||
<file alias="yuzu.ico">../../dist/yuzu.ico</file>
|
||||
</qresource>
|
||||
</RCC>
|
|
@ -1,6 +1,8 @@
|
|||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Modified by JuanCStar on 2024/03/06
|
||||
|
||||
# Credits to Samantas5855 and others for this function.
|
||||
function(create_resource file output filename)
|
||||
# Read hex data from file
|
||||
|
@ -25,7 +27,7 @@ add_executable(yuzu-cmd
|
|||
sdl_config.cpp
|
||||
sdl_config.h
|
||||
yuzu.cpp
|
||||
yuzu.rc
|
||||
suyu.rc
|
||||
)
|
||||
|
||||
target_link_libraries(yuzu-cmd PRIVATE common core input_common frontend_common)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
// SPDX-FileCopyrightText: 2018 yuzu Emulator Project & 2024 suyu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// Modified by JuanCStar on 2024/03/06
|
||||
|
||||
#include "winresrc.h"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
@ -9,7 +11,7 @@
|
|||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
YUZU_ICON ICON "../../dist/yuzu.ico"
|
||||
SUYU_ICON ICON "../../dist/suyu.ico"
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -17,4 +19,4 @@ YUZU_ICON ICON "../../dist/yuzu.ico"
|
|||
// RT_MANIFEST
|
||||
//
|
||||
|
||||
0 RT_MANIFEST "../../dist/yuzu.manifest"
|
||||
0 RT_MANIFEST "../../dist/suyu.manifest"
|